簡體   English   中英

如果數據庫中不存在該值,如何在Laravel Controller中引發重定向?

[英]How do i throw a redirect in Laravel Controller if the value doesn't exist in the database?

我有一個下拉類別選擇標記,用於存儲會話並將會話名稱與存儲在數據庫中的類別標記匹配。 一切正常,但是如果數據庫中不存在類別名稱,則會出現此錯誤, Trying to get property 'catslug' of non-object 如何在我的代碼中解決此問題:

 public function catbusiness(Request $request, $slug)
    {
       //this grabs all category in select tag
       $cats =  Category::orderBy('categoryname','ASC')->get();

        //this is the slug for individual category in url
        $catbread = Category::where('catslug', $slug)->first();

        session()->put('categoryname', $catbread->catslug);

        ->with('catbread', $catbread)

    }

view.blade.php

<select name="record" style="margin-top:5%;">
                    @foreach($cats as $categoryselect)
                    <option value="{{ $categoryselect->catslug  }}"
                        @if(session('categoryname') == $categoryselect->catslug)
                            selected="selected"
                        @endif >
                        {{ $categoryselect->categoryname }}
                    </option>
                @endforeach
                </select>

您可以通過使用exists()方法檢查類別是否存在,如下所示:

if(!Category::where('catslug', $slug)->exists()) //Check if the category exists.
{
    return redirect()->route('your_not_found_route'); //Make a redirect
}
$catbread = Category::where('catslug', $slug)->first(); //If category exists fetch its data

暫無
暫無

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

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