Laravel 5.6 - “试图获取非对象的属性”
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/50484593/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Laravel 5.6 - "Trying to get property of non-object"
提问by jproux
I'm running a test in my controller just to make sure I get a output. Unfortunately, I get a "Trying to get property of non-object" error. I just want to see the name field displayed as per code below.
我在我的控制器中运行测试只是为了确保我得到一个输出。不幸的是,我收到“试图获取非对象的属性”错误。我只想看到按照下面的代码显示的名称字段。
Here's my Model (Member.php):
这是我的模型(Member.php):
namespace App;
use Illuminate\Database\Eloquent\Model;
class Member extends Model
{
//
}
Here's my MemberController.php file:
这是我的 MemberController.php 文件:
public function show($id)
{
$data = array();
$data['id'] = $id;
$member = Member::find('$id');
//Test
echo $member->name;
exit;
return view('members/show', $data);
}
This is my Route:
这是我的路线:
Route::get('members/{member}', 'MemberController@show');
This is my schema where the table is named members and the name field is defined:
这是我的架构,其中表被命名为 members 并且定义了 name 字段:
Like I said, when I run my url at Some_url/members/1 I get a "Trying to get property of non-object" error
就像我说的,当我在 Some_url/members/1 运行我的 url 时,我收到“试图获取非对象的属性”错误
Where am I going wrong?
我哪里错了?
回答by Loek
$member = Member::find('$id');
This line is the culprit.
这条线是罪魁祸首。
Change it to:
将其更改为:
$member = Member::find($id);
Reasons should be obvious ;)
原因应该很明显;)
回答by Rowel Abenio
Also don't include 'exit' before 'return'. It won't show the view if you do it like that.
也不要在“返回”之前包含“退出”。如果你这样做,它不会显示视图。
回答by Afsal
$member = Member::findOrFail($id);
OR$member = Member::find($id);
$member = Member::findOrFail($id);
或者$member = Member::find($id);
when you use a variable as a parameter don't use in quotes
当您使用变量作为参数时,不要在引号中使用
回答by Paul Androshchuk
Try-out Route Model Binding. Does it look clearer?
试用路由模型绑定。看起来是不是更清晰了?
public function show(Member $member)
{
return view('members/show', ['id' => $member->getKey()]);
}