【发布时间】:2019-08-09 10:06:38
【问题描述】:
我使用名为 infyom lab 的生成器(它对我来说是新的)在 laravel 上工作。我对这个生成器有了新的体验,但出现了一个错误。它说“试图获取非对象的属性'名称'”。我习惯于在没有生成器的情况下手动完成所有操作并且做得很好。希望有所帮助
用户控制器.php
public function index(Request $request) {
$users = $this->userRepository->all();
return view('users.index')
->with('users', $users);
}
用户存储库
<?php
namespace App\Repositories;
use App\Models\User;
use App\Repositories\BaseRepository;
/**
* Class UserRepository
* @package App\Repositories
* @version August 7, 2019, 5:11 pm UTC
*/
class UserRepository extends BaseRepository
{
/**
* @var array
*/
protected $fieldSearchable = [
'name',
'email',
'telephone',
'username',
'password',
'company_id'
];
/**
* Return searchable fields
*
* @return array
*/
public function getFieldsSearchable()
{
return $this->fieldSearchable;
}
/**
* Configure the Model
**/
public function model()
{
return User::class;
}
}
模型用户
public function company(){
return $this->belongsTo('App\Company');
}
示范公司
public function users(){
return $this->hasMany('App\User');
}
查看用户
<td>{{ $user->company->name }}</td>
【问题讨论】:
-
您的控制器中如何定义
$this->userRepository?此外,除非您确实需要原始输入,否则应避免使用{!! !!}并改用{{ }}。非对象的属性表明$user->company评估为null。 -
$this->userRepository来自名为 infyom 的生成器,{!! !!} 也来自生成器,它工作正常。问题是,为什么它说 null? -
{!! !!}不会转义输入。{{ }}确实如此。它将&lt;和&gt;符号转换为&lt;和&gt;。它说null,因为User没有与任何Company关联($user->company_id要么是null,要么不是有效的Companyid) -
好的,我解决了
{!! !!}的问题,顺便说一句,这是我的标题,我错过了什么吗? -
你试过
dd($user);或dd($user->company);看看它是否对公司有价值?或dd($user->company());
标签: laravel