试图在 laravel 5.4 中获取非对象的属性

Posted

技术标签:

【中文标题】试图在 laravel 5.4 中获取非对象的属性【英文标题】:Trying to get property of non-object in laravel 5.4 【发布时间】:2018-12-03 23:03:34 【问题描述】:

我正在尝试呼应我学校中用户的姓名。

学校餐桌

Schema::create('schools', function (Blueprint $table) 
    $table->increments('id');
    $table->integer('user_id')->unsigned();
    $table->foreign('user_id')->references('id')->on('users');
    $table->string('school_name');
    $table->string('status');
    $table->string('gender');
    $table->string('notes');
    $table->string('member_name');
    $table->string('type');
    $table->string('file_number');
    $table->string('phone');
    $table->string('address');
);

对于 SchoolController

public function show(School $school)

    $province_names = Province::all();
    $city_names = City::all();
    $center_names = City::all();
    return view('school.all', compact('school','city_names', 'province_names', 'center_names'));

示范学校

public function user()

    return $this->belongsTo(User::class, 'user_id');

all.blade.php

 $school->user->firstـname 

我收到这个错误

试图获取非对象的属性

但我写了 dd($school->user) 显示null

也许我错了

【问题讨论】:

【参考方案1】:

试试这个:

public function show($id) 
    $school = School::with('user')->where('id', $id)->first();

    // ...

或者在你的模型上自动加载关系:

class School extends Model 
    protected $with = ['user'];

【讨论】:

哦,我在三周内就参与了。谢谢

以上是关于试图在 laravel 5.4 中获取非对象的属性的主要内容,如果未能解决你的问题,请参考以下文章

试图在 laravel 5.5 中获取非对象的属性

试图在 Laravel 4 中获取非对象的属性

试图在laravel中获取非对象的属性'expiry_date'

错误:试图在 Laravel 中获取属性 ID 错误(非对象)

如何处理试图在laravel中获取非对象错误的属性?

如何修复“试图获取非对象的属性”Laravel 5