У предупреждения может быть много сообщений, связанных с ним через внешний ключ. Каждое отправленное сообщение также прикрепляется к пользователю через внешний ключ. При просмотре предупреждения, если такие сообщения существуют (они не требуются), я хочу отображать каждое сообщение вместе с данными соответствующего пользователя. МодельLaravel hasMany relationship не зацикливается, чтобы показать результаты
Пользователь:
public function alerts()
{
return $this->hasMany('Alert');
}
public function messages()
{
return $this->hasMany('Message');
}
оповещения модель:
public function user()
{
return $this->belongsTo('User');
}
public function messages()
{
return $this->hasMany('Message');
}
Я заметил, если сигнал не имеет каких-либо сообщений, связанных с этим, forloop
не работает!
В моей show
зрения, у меня есть:
@foreach($alerts as $alert)
<tr>
<td>{{ $alerts->messages->first()->firstname }}</td>
<td>{{ $alerts->messages->first()->user->email }}</td>
<td>{{ $alerts->messages->first()->user->phone_number }}</td>
<td>{{ $alerts->messages->first()->message }}</td>
<td>{{ date("j F Y", strtotime($alerts->messages->first()->created_at)) }}</td>
<td>{{ date("g:ia", strtotime($alerts->messages->first()->created_at)) }}</td>
</tr>
@endforeach
который прекрасно работает, если есть сообщения, чтобы показать, но только петли через первое сообщение, а не все остальные. Контроллер втягивая данных:
public function show($id)
{
$alert = Alert::where('id','=',$id)->first();
$this->layout->content = View::make('agents.alert.show',
array('alerts' => $alert));
}
Любое руководство, почему forloop
не работает, когда есть меньше 2 результатов, и почему он только петли через первый результат. Спасибо.
Работает как очарование. Очень ясны и относительно нетерпеливой нагрузки. большое спасибо, Deczo. – Ben
Спасибо! У меня была такая же проблема, но я попытался сделать цикл foreach с помощью $ alert-> messages() –