Laravel 4 uno a molti con dove
Domanda
Ho due prodotti da tavola e magazzino.
Products
--------
id
name
Stock
-------
id
products_id
organization
price
.
Il mio codice:
class ProductsModel extends Eloquent {
protected $table = 'products';
public function stock(){
return $this->hasMany('StockModel', 'products_id');
}
class StockModel extends Eloquent {
protected $table = 'stock';
}
.
Se uso:
$data['products'] = ProductsModel::where('id', $id)->stock()->where('organization', 1)->get();
.
o
$data['products'] = ProductsModel::where('id', $id)->stock->where('organization', 1)->get();
.
Ottieni errori:
Laravel throw error: Undefined property: Illuminate\Database\Eloquent\Collection::$stock
. Soluzione
Come stai passando un ID prodotto, presumo che tu voglia solo un'istanza del prodotto.Puoi provare questo
$product = ProductsModel::find($id);
$stocks = $product->stock;
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow