簡體   English   中英

laravel 制作不帶刀片的視圖以獲取實心消息

[英]laravel make view without blade for solid message

我想做一個返回視圖的 function,但是如果找不到您要查找的項目,只需在視圖 object 中返回一條隱藏消息。

public function getBannerById(string $banner_id): View
   $banner = Banner::find($banner_id);

   if (!$banner) {
      return view()->append('<!-- Banner not found! -->'); // this not work
   }

  // more code ....

  return view('banner', ['banner' => $banner]);
}

您可以為此使用 laravel Session,如果找不到這些項目,請使用 session 消息返回您的視圖,然后在視圖中驗證 session 是否存在並顯示該消息。

在 controller:

   if (!$banner) {
       Session::flash('error', "Banner not found!");
      return view('view.name'); // 
   }

在視圖中

@if (session('error'))
     <div class="alert alert-danger" role="alert">
         {{ session('error') }}
     </div>
@endif

您可以簡單地返回Banner not found或在刀片文件中附加 if-else 語句,如下所示:

Controller 代碼:

<?php

public function getBannerById(string $banner_id): View
   $banner = Banner::find($banner_id);
   return view('banner', compact('banner'));
}

查看刀片文件:

@if(!$banner)
  <p> Banner not found!</p>
@else
  // Your view you wish to display
@endif

更新:

如果找不到橫幅,您還可以使用findOrFail方法自動將 404 響應發送回客戶端。

$banner = Banner::findOrFail($banner_id);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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