[英]Undefined Variable in Blade Laravel
我的控制器中有這個:
public function detail($id) {
$data = DB::table('data_api')->where('id', $id)->get();
$carousel = DB::table('data_carousel')->where('data_api_id', $id)->get();
return view('detail', ['data_api' => $data]);
return view('detail', ['data_carousel' => $carousel]);
}
但是當我嘗試 echo-ing, $carousel
by {{ $carousel }}
,它說沒有找到。 但是$data
工作得很好。 任何的想法?
未定義變量:carousel(查看:/mylaravelproject/resources/views/detail.blade.php)
您需要將雙返回語句更改為單返回
return view('detail', ['data_api' => $data]);
return view('detail', ['data_carousel' => $carousel]);
到
return view('detail', ['data_api' => $data, 'data_carousel' => $carousel]);
您返回視圖兩次,這就是為什么視圖中只有$data_api
可用,
嘗試這個
public function detail($id) {
$data = DB::table('data_api')->where('id', $id)->get();
$carousel = DB::table('data_carousel')->where('data_api_id', $id)->get();
return view('detail', ['data_api' => $data, 'data_carousel' => $carousel]);
}
更新:
public function detail($id) {
$data = DB::table('data_api')->where('id', $id)->get();
$carousel = DB::table('data_carousel')->where('data_api_id', $id)->get();
return view('detail', ['data_carousel' => $carousel,'data_api' => $data]);
}
您正在從同一個控制器返回兩個視圖。 第一次return
后,代碼停止執行,不會return
第二個視圖。 這就是為什么您無法獲得第二個視圖參數的原因
你不能從一個函數返回兩次並期望兩者都實際返回一些東西。 在第一次return
,函數的執行就會停止。
嘗試同時返回兩個變量:
return view('detail', [
'data_api' => $api,
'data_carousel' => $carousel
]);
用以下代碼替換您的代碼:
public function detail($id) {
$data = DB::table('data_api')->where('id', $id)->get();
$carousel = DB::table('data_carousel')->where('data_api_id', $id)->get();
return view('detail')->with('data_api', $data)->with('data_carousel', $carousel);
}
您需要返回如下視圖
public function detail($id) {
$data = DB::table('data_api')->where('id', $id)->get();
$carousel = DB::table('data_carousel')->where('data_api_id', $id)->get();
return view('detail', compact('data','carousel'));
}
現在真的有效嗎? 你告訴我們你得到
Undefined variable: carousel (View: /mylaravelproject/resources/views/detail.blade.php)
你會得到它,因為你沒有將變量 carousel 傳遞給你的視圖,你將變量命名為data_api
和data_carousell
其次,您應該只在一個句子中將變量作為關聯數組傳遞,而不是像這樣的兩個視圖調用
return view('detail', ['carousel' => $carousel,'data' => $data]);
在我的情況下,我使用
@if(isset($users))
在我的 foreach 像這個例子之前:
<div class="form-group" id="boardAdminUserIdCon">
<p><span class="glyphicon glyphicon-briefcase" aria-hidden="true"></span> مدیر بورد</p>
<select name="boardAdminUserId" id="boardAdminUserId" class="form-control" required="required">
<option value="">{{ __('auth.CHOOSEYOURADMIN') }}...</option>
@if(isset($users))
@foreach($users as $user)
<option value="{{ $user['id'] }}">{{ $user["name"] }}
</option>
@endforeach
@endif
</select>
</div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.