0

我有以下路线:

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->id 的正确方法是什么

谢谢

我将如何过滤循环内 if 语句中的注释?@if (isset($note->title) != 'shorttext')

          @else
           <p> {{ $note->text }} </p>
          @endif  
          @endforeach
4

4 回答 4

1

您在 Route 中使用 $destination->id ,但它似乎尚未定义。问题是,你想用你的代码实现什么?和:

$destinations = Destination::where('show', '=','1')->get();
$notes = Destination::find($destination->id)->notes()->get();

你只得到一个特定目的地的注释(到目前为止,$destination 没有定义。你可以使用 Destination::all()->first() 来获取第一个,或者 Destination::find(id),带有 ID被您需要的目的地的主键值替换)。

但我猜你不希望这样。从您的输出中,您似乎希望每个目的地都有一个输出,并且每个目的地下方都有相应的注释。

控制器:

//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

没有对此进行测试,但这样您的视图将向您显示所有目的地以及每个目的地的所有注释。

于 2013-05-29T15:19:41.500 回答
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
于 2013-05-29T12:58:32.573 回答
0

所以首先你问了一个问题,我给了你一个正确的答案。您将我的答案标记为已接受,但稍后您编辑初始问题以添加另一个问题(您应该为此创建一个新线程)。然后您创建自己的答案,该答案仅回答您最初问题的一部分并将其标记为好的解决方案?

我可以告诉您为什么您的 isset 和 empty 不起作用,但是如果您根本不重视我的帮助,我为什么要这样做?

于 2013-06-06T13:41:48.440 回答
-1

好的,这在最后的函数 isset 和 empty 不起作用,奇怪:

@if ($note->title == 'shorttext')
于 2013-06-02T11:51:12.770 回答