亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何顯示帖子所屬的類別以及所有類別

如何顯示帖子所屬的類別以及所有類別

PHP
素胚勾勒不出你 2021-12-03 16:27:36
希望你們都做得很好。我在帖子和類別表之間有一個多對多的關系。通過使用數據透視表,我能夠獲得帖子所屬的所有類別,但我無法獲得數據庫中存在的所有類別。這是我的編輯帖子方法:public function edit(Post $post){    $post=Post::find($post->id);    $categories=Category::all();    return view('admin.pages.post.edit',compact('post','categories'));}這就是我在我看來使用的:<div class="form-group">   <label>Categories</label>    <select class="form-control" id="select2" name="categories_id[]" multiple="multiple">     @foreach($post->categories as $category)        <option value="{{ $category->id }}" selected>{{ $category->name}}</option>     @endforeach^^ 這顯示了帖子所屬的當前類別?,F在我有一個屬于 WEB 類別的帖子。它在編輯頁面中將 WEB 顯示為一個類別但我也想顯示帖子最初不屬于的所有類別(AI、ML 等),以便用戶可以選擇更新帖子的類別屬于。我也使用 select2 作為多選框這就是我所擁有的 這就是我所追求的
查看完整描述

2 回答

?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

在 HTML 表單上,您可以檢查是否id是這樣的一部分$post(我會做最容易理解的,您可以通過多種方式進行重構):


 <option value="{{ $category->id }}" {{isset($post->categories->where('id', $category->id)->first())?'selected':''}}>{{ $category->name}}</option>

為了使這件事變得簡單并以最少的調用數據庫,在刀片視圖上的循環之前將類別關系加載到您的帖子中。您不需要 ( $post=Post::find($post->id);) 行,因為您的路由模型綁定已經注入了它。


在您的Controller的edit方法中:


 public function edit(Post $post)

 {

     $post->load('categories');

     $categories=Category::all();

     return view('admin.pages.post.edit',compact('post','categories'));

 }

我假設你有關系,從categories到posts您的正確設置后的模型。但這本質上只是詢問“此表單上的此帖子是否具有此類別(按此循環),然后將其標記為已選中”。


我真的很喜歡 LaravelCollective 的方式來做到這一點,也推薦你看看圖書館。它將模型綁定到表單,并自動為您選擇所選項目。您可以使用 Collective 在這樣的簡單行中完成:


 {!! Form::select('categories[]', $categories, null, ['class'=>'form-control', 'multiple', 'id'=>'categories']) !!}



查看完整回答
反對 回復 2021-12-03
?
米脂

TA貢獻1836條經驗 獲得超3個贊

修復了數小時搜索后的問題


在我所做的編輯方法中:


public function edit(Post $post)

{

    $post=Post::with('tags','categories')->find($post->id);

    $tags=Tag::all();

    $categories=Category::all();

    return view('admin.pages.post.edit',compact('post','categories','tags'));

}

在我看來:


<div class="form-group">

       <label>Categories</label>

       <select class="form-control" id="categories" name="categories[]" multiple="multiple">

           @foreach($categories as $category)

           <option value="{{ $category->id }}"

                @foreach($post->categories as $postCat)

                      {{ $postCat->id==$category->id?'Selected':'' }}

                @endforeach

           >{{ $category->name}}</option>

           @endforeach

        </select>


查看完整回答
反對 回復 2021-12-03
  • 2 回答
  • 0 關注
  • 211 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號