Home  >  Article  >  Backend Development  >  请教 laravel view 怎么显示 controller 中传递的对象值。

请教 laravel view 怎么显示 controller 中传递的对象值。

WBOY
WBOYOriginal
2016-06-06 20:16:071289browse

Controller 代码:

<code>public function show(Request $request,$id){
$person = DB::table('persons')->where('id',$id)->get();
return view('showuser',compact('person'));
}
</code>

我在 view/showuser.blade.php 怎么写才能显示出 person 这个对象的值?

必须这么写才行 {{ $person[0]->id }} ???

感觉这样显示的值是个数组啊。 不是对象啊。

view()->withXXX
view('xxx,compact('xxx'))
这些传递到 view 的数据 都应该怎么显示???
这些数据都是什么形式?
希望熟悉 laravel 的 指点下~

回复内容:

Controller 代码:

<code>public function show(Request $request,$id){
$person = DB::table('persons')->where('id',$id)->get();
return view('showuser',compact('person'));
}
</code>

我在 view/showuser.blade.php 怎么写才能显示出 person 这个对象的值?

必须这么写才行 {{ $person[0]->id }} ???

感觉这样显示的值是个数组啊。 不是对象啊。

view()->withXXX
view('xxx,compact('xxx'))
这些传递到 view 的数据 都应该怎么显示???
这些数据都是什么形式?
希望熟悉 laravel 的 指点下~

<code>$person = DB::table('persons')->where('id',$id)->get();
</code>

这句其实是从 Builder 对象中取回一个 Collection 对象,而该 Collection 对象中包含了 Person 对象。Collection 实现了数组相关的接口,所以也可以使用访问数组的方式获取 Person 对象。

如果想通过 id 直接获取 Person 对象,可以使用 find 方法:

<code>$person = DB::table('person')->find($id);
</code>

Blade 中可以使用 @for、@foreach 或 @forelse 等遍历对象集合,再显示对象的属性值:

<code>@forelse($persons as $person)
    <li> {{ $person->name }} </li>
@empty
    <span>Nothing.</span>
@endforelse
</code>

对于单个对象自然直接访问即可:

<code>Hello, {{ $person->name }} !</code>

楼主既然写了获取某个ID的用户,那根本用不到 foreach 了吧。只获取一个用户的可以直接用 first() 方法:

<code>$person = DB::table('persons')->where('id',$id)->first();
// Or
$person = DB::table('persons')->where('id',$id)->firstOrFail();</code>

这样的话在 view 中可以直接 $person->name 来显示,而不用 $person[0]->name 了。

你需要@foreach

楼上正解

<code>@foreache($person as $temp)
 {$temp->foo}
@endforeach
</code>

你查询出来的数据形式可以试着

<code>dd();
</code>

laravel中传递的数据一般都为JSON数组形式

同在学习laravel,如有错误的地方欢迎指出

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn