I 3 Modelle wie diese:where-Klausel innerhalb einer Beziehung - Laravel
WarehousePivotCategory:
id - warehouse_id - warehouse_category_id
Lager:
title
WarehouseCategory:
title_en
I‘ ve erstellt 2 hasOne
Beziehungen innerhalb WarehousePivotCategory
und sie funktionieren gut:
public function Warehouse()
{
return $this->hasOne('App\Models\Warehouse','id','warehouse_id');
}
public function WarehouseCategory()
{
return $this->hasOne('App\Models\WarehouseCategory','id','warehouse_category_id');
}
in der Datenbank habe ich zwei Datensätze in warehouses
Tabelle haben:
id title
1 AA
2 BB
Ich will Titel in warehouses
suchen:
$title = 'AA';
$warehouses = WarehousePivotCategory::with(['warehouse' => function($q) use ($title) {
$q->where('title', 'like', '%' . $title . '%');
},'WarehouseCategory'])->get();
foreach ($warehouses as $w)
{
echo $w->warehouse->title; // no thing
}
aber es gibt keine von title
von Lagern zurück.
ist meine Beziehungen korrekt, da unten Code funktioniert gut:
WarehousePivotCategory::with('warehouse','WarehouseCategory')->paginate(10);
in der Beziehung, haben hasOne 2. param als foreign_key und 3. param als local_key. Ich glaube, du hast sie vermisst. Bitte überprüfen Sie mit der Dokumentation. https://laravel.com/docs/5.2/eloquent-relationships#one-to-one –
versuchen Sie dies, in der Abfrage ändern Sie den Feldnamen als Titel. dann wirft es einen Fehler der ganzen SQL-Abfrage. In dem Versuch kannst du finden, dass etwas in Ordnung ist oder nicht. kannst du mich verstehen..? und versuche auch die ManyToMany-Beziehung. –