获取对象的属性

时间:2016-08-03 11:27:09

标签: php html laravel model

我有一对多模型。 一个有许多练习的WorkoutDetails。

我能够显示练习的所有数据,但我只需要属性'标题'。

在控制器中我有

public function getDetails($id){

        $details = WorkoutDetails::where('parent_id','=',$id)->get();


        return View::make('menu_renderer.partials.details')->with('details', $details);
    }

在HTML中我有

@foreach($details as $detail)
        <div>
            <ul>
                {{$detail->exercises}}
            </ul>
        </div>
 @endforeach

输出是:

  

[{“id”:1,“type_id”:0,“title”:“练习一”,“详情”:“详情   运动一个“,”媒体“:”5“,”created_at“:” - 0001-11-30   00:00:00“,”updated_at“:” - 0001-11-30 00:00:00“}]   [{“id”:2,“type_id”:0,“title”:“练习二”,“详情”:“详情   练习两个“,”媒体“:”2“,”created_at“:” - 0001-11-30   00:00:00“,”updated_at“:” - 0001-11-30 00:00:00“}]   [{“id”:3,“type_id”:0,“title”:“练习三”,“详情”:“详情   练习三“,”媒体“:”6“,”created_at“:” - 0001-11-30   00:00:00“,”updated_at“:” - 0001-11-30 00:00:00“}]   [{“id”:4,“type_id”:0,“title”:“练习四”,“详情”:“详情   练习四“,”媒体“:”6“,”created_at“:” - 0001-11-30   00:00:00“,”updated_at“:” - 0001-11-30 00:00:00“}]

哪个不错,但我只需要标题或细节。

我试过

@foreach($details as $detail)
        <div>
            <ul>
                {{$detail->exercises->title}}
            </ul>
        </div>
 @endforeach

@foreach($details as $detail)
        <div>
            <ul>
                {{$detail->exercises.title}}
            </ul>
        </div>
 @endforeach

@foreach($details as $detail)
        <div>
            <ul>
                {{$detail->exercises[title]}}
            </ul>
        </div>
 @endforeach

但没有......

任何人都可以给我一个提示,我如何才能显示属于WorkoutDetails模型的每个练习的标题或细节?

谢谢!

2 个答案:

答案 0 :(得分:1)

从提供的转储中,似乎另一个数组正在保存内部数据。

因此尝试:

@foreach($details as $detail)
        <div>
            <ul>
                {{$detail->exercises[0][title]}}
                // or : 
                {{$detail->exercises[0]->title}}
            </ul>
        </div>
 @endforeach

答案 1 :(得分:0)

您可以使用laravel查询函数first()来拾取第一个对象。

@foreach($details as $detail)
    <div>
        <ul>
            {{ $detail->exercises->first()->title }}
        </ul>
    </div>
@endforeach