Rumah >pembangunan bahagian belakang >tutorial php >请教 laravel view 怎么显示 controller 中传递的对象值。
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,如有错误的地方欢迎指出