我正在尝试返回属于同一案例
的多个会话文件路由中的路由.php:
Route::get('company/case/{case_id}/session/', ['before' => 'auth|can:view_all_sessions*view_own_sessions', 'uses' => 'SessionController@index', 'as' => 'company.session.index']);
控制器 :: 会话控制器.php:
public function index($case_id) {
$case = LawCase::findOrFail($case_id);
$sessions = $case->sessions()->orderBy(Input::get('field', 'date'), Input::get('sort', 'desc'))
->paginate(20);
$data = [
'sessions' => $sessions,
'form' => null,
'title' => trans('links.sessions'),
'case' => $case,
'case_id' => $case_id
];
$this->layout->section = View::make('session.index', $data);
}
模型类 :: 法律会议.php:
public function lawcase() {
return $this->belongsTo(LawCase::class, 'case_id');
}
模型类 :: 法律案例.php:
public function sessions() {
return $this->hasMany(LawSession::class, 'case_id');
}
我得到了这个错误:
关系方法必须返回类型为 Illuminate\Database\Eloquent\Relations\Relation
的对象
这应该有帮助:
dd($case->getRelations());
你看到你们的关系了吗?如果是,请执行以下操作:
dd($case->sessions);
它是否返回相关数据?
如果这无助于查找问题,请共享完整的堆栈跟踪。没有日志很难猜出解决方案。
您可以在以下位置找到日志:
/storage/logs/laravel.php
只需在SessionController中修改这一行.php
$sessions = $case->sessions->orderBy(Input::get('field', 'date'), Input::get('sort', 'desc'))->paginate(20);
并使数据库中存在关系记录。