2017-07-16 3 views
1

エラー:リレーションシップの方法は、タイプを照らしデータベースのオブジェクトを返す必要があります雄弁リレーションズ関係私は、ファイルroutes.phpの中で同じ場合</strong><br> <br> <strong>ルートに属する複数のセッションを返すようにしようとしています

Route::get('company/case/{case_id}/session/', ['before' => 'auth|can:view_all_sessions*view_own_sessions', 'uses' => '[email protected]', 'as' => 'company.session.index']); 

コントローラー:: SessionController.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); 
} 

Modelクラス:: LawSession.php:

public function lawcase() { 
    return $this->belongsTo(LawCase::class, 'case_id'); 
} 

Modelクラス:: LawCase.php:

関係方法:

public function sessions() { 
    return $this->hasMany(LawSession::class, 'case_id'); 
} 

そして、私はこのエラーを得ましたIlluminate \ Database \ Eloquent \ Relations \ Relationのオブジェクトを返す必要があります

答えて

-1

だけ

$sessions = $case->sessions->orderBy(Input::get('field', 'date'), Input::get('sort', 'desc'))->paginate(20);

SessionController.php

にこの行を変更し、レコードがデータベースに存在して関係がありますします。

+0

それが与えた:未定義のメソッドへ コール –

+0

それは、私はそれを返す場合でも、この方法 –

1

これは役立つはず:

dd($case->getRelations()); 

あなたはそこにあなたの関係を参照していますか?はいの場合:

dd($case->sessions); 

関連するデータを返しますか?

これで問題が見つからない場合は、完全なスタックトレースを共有してください。ログのないソリューションを推測するのは難しいです。

あなたがでログを見つけることができます:

/storage/logs/laravel.php 
+0

を見ると、同じエラー にすべてのセッションを与えたことはできませんが見つかり、真されていますしかし、 dd($ case-> getRelations()); ::: array(size = 0)empty –

+0

関連するデータを持つデータベースに '' law_sessions''テーブルがありますか? – verax

+0

確かに、すべてのデータベーステーブルは正しいですし、 –

関連する問題

 関連する問題