Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检索Laravel中的数据透视表列值_Php_Laravel_Model_Pivot - Fatal编程技术网

Php 检索Laravel中的数据透视表列值

Php 检索Laravel中的数据透视表列值,php,laravel,model,pivot,Php,Laravel,Model,Pivot,我有一个不应该发生的奇怪问题 我有一段代码来检索数据透视表的值 $product = Product::find(296); dd($product->pivot->aisle); 它应该像我在其他几个项目中所做的那样工作。今天它突然给了我以下错误: (1/1) ErrorException Trying to get property of non-object in ProductController.php (line 42) at HandleExceptions->

我有一个不应该发生的奇怪问题

我有一段代码来检索数据透视表的值

$product = Product::find(296);

dd($product->pivot->aisle);
它应该像我在其他几个项目中所做的那样工作。今天它突然给了我以下错误:

(1/1) ErrorException
Trying to get property of non-object
in ProductController.php (line 42)
at HandleExceptions->handleError(8, 'Trying to get property of non-object', 
'C:\\laragon\\www\\Sales\\app\\Http\\Controllers\\ProductController.php', 
42, array('retailer' => object(Retailer), 'product' => object(Product)))
in ProductController.php (line 42)
在我的产品模型中,我有以下内容:

public function retailers(){

return $this->belongsToMany(Retailer::class)->withPivot('aisle','ifinstock','ifstock','ifticketed','ifonshelf','iflowstock','note','id','created_at','updated_at','stocklevel');

}
在我的零售商模型中,我有:

public function products(){

return $this->belongsToMany(Product::class)->withPivot('aisle','ifinstock','ifstock','ifticketed','ifonshelf','iflowstock','note','id','created_at','updated_at','stocklevel');

}
我只是看不出哪里出了问题?

当您访问Product::find296时,您不是通过相关模型访问,而是访问产品模型本身,因此Laravel/Eloquent不会加载任何关系信息,例如透视字段,因为这些透视字段没有为产品模型定义,它们是为关系定义的

如果你要做:

$retailer = Retailer::with('products')->find(...);
然后访问该模型上的产品关系,它应该可以工作:

$product = $retailer->products->first();
var_dump($product->pivot);

总之,产品本身没有任何透视字段。透视字段用于产品和零售商的关系。

尝试dd$product和dd$product->pivot。它们是否都返回null?如果是这样的话,问题就从这里开始了;我们能看看你们的产品型号吗?