我有以下路线:
Route::get('notes/main', function(){
$destinations = Destination::where('show', '=','1')->get();
$notes = Destination::find($destination->id)->notes()->get();
return View::make('notes.main')
->with('destinations', $destinations);
});
//关系模型:
<?php
class Destination extends Eloquent {
public function notes()
{
return $this->has_many('Note');
}
}
<?php
class Note extends Eloquent
{
public function destination()
{
return $this->belongs_to('Destination');
}
}
//检视:
@foreach( $destinations as $destination)
{{ $destination->name}}<br>
{ $notes->destination->text }} // this isn't echoed
@endforeach
过滤此内容并定义$ destination-&gt; id
的正确方法是什么感谢
如何在循环内的if语句中过滤注释? @if(isset($ note-&gt; title)!='shorttext')
@else
<p> {{ $note->text }} </p>
@endif
@endforeach
答案 0 :(得分:1)
您在路线中使用$ destination-&gt; id但似乎尚未定义。问题是,你想用你的代码实现什么? 用:
$destinations = Destination::where('show', '=','1')->get();
$notes = Destination::find($destination->id)->notes()->get();
您只获得一个特定目的地的Notes(到目前为止,$ destination未定义。您可以使用Destination :: all() - &gt; first()获取第一个,或者Destination :: find(id ),将ID替换为您需要的目标的主键值。
但我想你不希望这样。从您的输出看起来您希望每个目的地都有一个输出,并且每个目的地下面都有相应的Notes。
控制器:
//gets all the destinations
$destinations = Destination::where('show', '=','1')->get();
return View::make('notes.main')
->with('destinations', $destinations);
查看:
@foreach( $destinations as $destination)
{{ $destination->name}}<br>
@foreach($destination->notes as $note)
{{ $note->text }} <br>
@endforeach
<hr>
@endforeach
没有测试过,但是这样你的View会显示你所有的目的地以及每个目的地的所有笔记。
答案 1 :(得分:0)
在您的路线中,您不向视图发送$ notes变量。
我该怎么做:
$destinations = Destination::where('show', '=','1')->get();
$destinations->notes = Destination::find($destination->id)->notes()->get();
然后在视图中:
@foreach( $destinations as $destination)
{{ $destination->name}}<br>
{{ $destination->notes->text }}
@endforeach
答案 2 :(得分:0)
首先你问了一个问题,我给了你一个正确答案。 您将我的答案标记为已接受,但稍后您编辑了您的初始问题以添加另一个问题(您应该为此创建一个新线程)。 然后你创建自己的答案,只回答你的初始问题的一部分,并将其标记为良好的解决方案?
我可以告诉你为什么你的缺点和空虚不起作用,但如果你不重视我的帮助,为什么我呢?
答案 3 :(得分:-1)
行 最后一部分最终得出结论 函数isset和empty不起作用,奇怪:
@if ($note->title == 'shorttext')