【问题标题】:Laravel 5.8: Weird Error Trying to get property 'created_at' of non-objectLaravel 5.8:尝试获取非对象的属性“created_at”时出现奇怪错误
【发布时间】:2021-10-06 13:45:57
【问题描述】:

我正在使用 Laravel 5.8 开发我的项目,在这个项目中,Member Model 和 Student Model 之间存在 OneToMany 关系,如下所示:

Student.php:

public function member()
    {
        return $this->belongsTo(Student::class, 'std_mbr_id');
    }

Member.php:

public function student()
    {
        return $this->hasOne(Student::class,'std_mbr_id');
    }

然后在控制器处,我添加了这个:

public function index()
    {
        $student = new Student();
        $students = $student->searchStudents()->paginate(20);
        $custom = new Student();
        $customs = $custom->all();
        return view('admin.students.custom', compact('students','customs'));
    }

现在在视图中,我想像这样获得created_at 时间戳:

$customs->find($student->mbr_id)->created_at

但这会返回这个错误:

试图获取非对象的属性“created_at”

但是,当我执行dd($customs->find($student->mbr_id)) 时,我可以正确获取时间戳:

那么在这种情况下如何访问created_at时间戳呢?


更新 #1:

{{ dd($customs->find($student->mbr_id)->created_at ) }} 的结果:

【问题讨论】:

  • 我得到 null 作为{{ dd($customs->find($student->mbr_id)->std_mrb_id) }}的结果@
  • 我刚刚添加了一个关于{{ dd($customs->find($student->mbr_id)->created_at ) }}结果的UPDATE #1
  • @AmitSenjaliya 你介意帮我解决这个问题吗,我真的被这个问题困住了......
  • 现在您可以找到 created_at 对象作为 UPDATE #1。
  • 现在工作正常吧?根据您的更新#1

标签: php laravel laravel-5.8


【解决方案1】:

首先检查$customs->find($student->mbr_id)是否有返回值:

$customs->find($student->mbr_id) ? $customs->find($student->mbr_id)->created_at : 'not found';

【讨论】:

猜你喜欢
  • 2021-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-31
  • 1970-01-01
  • 2018-09-26
相关资源
最近更新 更多