我想知道为什么我的laravel刀片文件中出现错误“试图获取非对象”。
刀片文件中的代码
@foreach($calls as $call)
<tr>
@if($call->counter_id === null)
<td>{{ $call->department->dept_name }}</td>
<td>{{ $call->transaction->trans_name }}</td>
</tr>
@endforeach
通话模型
public function call()
{
return $this->hasMany('App\Call');
}
部门模型
public function department()
{
return $this->belongsTo('App\Department');
}
控制器
public function index()
{
$calls = Call::all();
return view('test', ['calls' => $calls]);
}
该代码看似正确。我在模型中提供关系。我只是想知道为什么会出现这种错误,同时我还要弄清楚为什么。
答案 0 :(得分:0)
您需要进行调试以查看到底出了什么问题。
尝试
var_dump( $call);;
die;
或
dd($call);
die;
以dept_name的名称查看来自内部的内容。 如果您使用 dd ,则会在关系标签中看到数据。 如果您没有看到诸如department之类的任何关系,则您的模型设置不正确。 除此以外 可能是数据库列名称不匹配或属性未定义 在模型课中。
答案 1 :(得分:0)
in your controller make sure
$calls = Calls::with('department')->get();
return view('--your blade file--',compact('calls'));
}