Laravel:ErrorException(E_ERROR)试图获取非对象的属性(视图:..../show.blade.php)[关闭]
Posted
技术标签:
【中文标题】Laravel:ErrorException(E_ERROR)试图获取非对象的属性(视图:..../show.blade.php)[关闭]【英文标题】:Laravel: ErrorException (E_ERROR) Trying to get property of non-object (View:..../show.blade.php) [closed] 【发布时间】:2019-08-12 10:22:48 【问题描述】:请帮助...我看不到我的错误,我是新手:
OrdersController.php:
public function show(Order $order)
return view('/orders.show', compact('order'));
Order.php:
public function TypesOfTest()
return $this->belongsTo(TypesOfTest::class);
show.blade.php:
<div class="col-12">
<p>Order for: $order->patient->name . ' ' . $order->patient->fname </p>
<p>Test type: $order->TypesOfTest->nameOfTest </p>
</div>
( $order->TypesOfTest->nameOfTest <-- is the problem
DB: orders table:
DB: types_of_tests table
【问题讨论】:
【参考方案1】:当你声明一个关系时,laravel 允许你定义其中涉及的键。如果你不这样做,对于外键,它只是将后缀_id
添加到表的名称中。
在您的情况下(未定义foreign_key),它会产生错误。将您的 belongsTo
关系更改为:
public function TypesOfTest()
return $this->belongsTo(TypesOfTest::class, 'typesOfTest_id');
【讨论】:
工作!!谢谢【参考方案2】:您在模型中的关系如下:
Order.php:
public function TypesOfTest()
return $this->belongsTo(TypesOfTest::class, 'typesOfTest_id');
TypesOfTest.php
public function order()
return $this->hasMany(Order::class);
【讨论】:
以上是关于Laravel:ErrorException(E_ERROR)试图获取非对象的属性(视图:..../show.blade.php)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
php artisan serve [ErrorException] laravel
updateOrCreate 在 laravel 中导致 ErrorException
laravel - ErrorException 数组到字符串的转换
laravel 5.5:php artisan tinker:ErrorException:目录不为空[重复]