簡體   English   中英

Blade Laravel 中的未定義變量

[英]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_apidata_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM