2017-05-27 21 views
0

多くのアポイントメントモデルを持つクライアントモデルがあります。また、アポイントメントはクライアントに属します。クライアントの名前と予定表をインデックスブレードに表示する結果を返そうとしています。ここに私のコードは、これまでです:プロパティがこのコレクションインスタンスに存在しません

クライアントモデル

public function appointment() 
{ 
    return $this->hasMany(Appointment::class); 
} 

予定モデル

public function client() 
    { 
     return $this->belongsTo(Client::class); 
    } 

Controlller

$clients = Client::with('appointment')->get(); 

     //dd($clients); 
     return view('scheduler')->withclients($clients); 

ブレード

@foreach($clients as $client 
{{ $client->name }} 
{{ $client->appointment->id }} 
@endforeach 

$クライアント名とその予定リストを印刷するにはどうすればよいですか?私はこの問題に関して他の助けを尽くしましたが、どこが間違っているのか明確ではありません。

+0

あなたは '@ foreach'行のparantheseを逃しています。さらに、どのように 'withclients()'関数を思いついたのですか?どんな風に見えますか? 'view( '..') - > with(compact(" clients "));を使ってビューに値を渡すことができます。 – manniL

答えて

0

あなたの関係は一対多関係です。あなたは多くのappointmentsを持っています。あなたはクライアントを反復処理することができます

は、第1、予定以上の内側のループ内のリスト:

@foreach($clients as $client) 
{{ $client->name }} 
    @foreach($clients->appointment as $appointment) 
     {{ $appointment->id }} 
     {{ $appointment->name }} 
    @endforeach 
@endforeach 

とにかく、正確に一つのクライアントとの関係でだから、appointmentモデルの上に行くことが容易かもしれません。

@foreach(Appointment::all() as $appointment) 
    {{ $appointment->name }} 
    {{ $appointment->client->name }} 
@endforeach 
関連する問題