Controller 代碼:
public function show(Request $request,$id){$person = DB::table('persons')->where('id',$id)->get();return view('showuser',compact('person'));}
我在 view/showuser.blade.php 怎麼寫才能顯示出 person 這個對象的值?
必須這麼寫才行 {{ $person[0]->id }} ???
感覺這樣顯示的值是個數組啊。 不是對象啊。
view()->withXXX
view('xxx,compact('xxx'))
這些傳遞到 view 的資料 都應該怎麼顯示???
這些資料都是什麼形式?
希望熟悉 laravel 的 指點下~
回複內容:
Controller 代碼:
public function show(Request $request,$id){$person = DB::table('persons')->where('id',$id)->get();return view('showuser',compact('person'));}
我在 view/showuser.blade.php 怎麼寫才能顯示出 person 這個對象的值?
必須這麼寫才行 {{ $person[0]->id }} ???
感覺這樣顯示的值是個數組啊。 不是對象啊。
view()->withXXX
view('xxx,compact('xxx'))
這些傳遞到 view 的資料 都應該怎麼顯示???
這些資料都是什麼形式?
希望熟悉 laravel 的 指點下~
$person = DB::table('persons')->where('id',$id)->get();
這句其實是從 Builder 對象中取回一個 Collection 對象,而該 Collection 對象中包含了 Person 對象。Collection 實現了數組相關的介面,所以也可以使用訪問數組的方式擷取 Person 對象。
如果想通過 id 直接擷取 Person 對象,可以使用 find 方法:
$person = DB::table('person')->find($id);
Blade 中可以使用 @for、@foreach 或 @forelse 等遍曆對象集合,再顯示對象的屬性值:
@forelse($persons as $person) {{ $person->name }} @empty Nothing.@endforelse
對於單個對象自然直接存取即可:
Hello, {{ $person->name }} !
樓主既然寫了擷取某個ID的使用者,那根本用不到 foreach
了吧。只擷取一個使用者的可以直接用 first()
方法:
$person = DB::table('persons')->where('id',$id)->first();// Or$person = DB::table('persons')->where('id',$id)->firstOrFail();
這樣的話在 view 中可以直接 $person->name
來顯示,而不用 $person[0]->name
了。
你需要@foreach
樓上正解
@foreache($person as $temp) {$temp->foo}@endforeach
你查詢出來的資料形式可以試著
dd();
laravel中傳遞的資料一般都為JSON數組形式
同在學習laravel,如有錯誤的地方歡迎指出