【发布时间】:2017-06-04 06:30:03
【问题描述】:
我有下一个型号:
class Product extends Model{
protected $table = 'products';
public function payments()
{
return $this->belongsToMany('App\Payment', 'payment_product', 'product_id', 'payment_id')
}
}
class Payment extends Model{
protected $table = 'payments';
public function products(){
return $this->belongsToMany('App\Product');
}
}
数据透视表:payment_product(id, product_id, payment_id)
口才
public function details($id){
$product = Product::with('payments')->find($id);
dd($product->payments); // return null
return view('products.details', ['product' => $product]);
}
我需要引入一个 foreach,但 $product->payments 为空。这是为什么 ? 所有的表都不是空的。
UPD 子查询 $this->belongsToMany('App\Payment', 'payment_product', 'product_id', 'payment_id'); 结果:
【问题讨论】:
-
仅供参考,因为您遵循 laravel 的命名约定,您不必在关系中提供表名/列。
标签: laravel orm eloquent laravel-5.3