bugfix> laravel > 投稿

こんにちは、私は自分の映画ブログのカテゴリを作成しようとしていますが、編集カテゴリは正しく選択する必要があります。 だから私はこのようなことをしました:

//fetching all categories
@foreach($categories as $category)
  //start option
  <option 
  //fetching current movie categories
  @foreach($movie->categories as $cat)
    //matching is this category match with
    @if($category->name === $cat->name)
    //if match selected method works
    selected="selected" 
    @endif
  @endforeach
  >{{ $category->name }}
  </option>
@endforeach

そして、それはうまく動作しますが、私はその間違った方法だと思います これを行う良い方法を教えてもらえますか ありがとう

回答 2 件
  • これをチェックして:
    @if(in_array( $category->name ,$movie->categories->pluck('name')) {{'selected' }} @endif     

    あなたに type arg2 must be an array error を与えれば 。 toArray() を追加  抜く方法の後。

  • それが私のやり方です。

       <select class="form-control" name="category_id">
            @foreach($categories as $category)
                <option value="{{$category->id}}" {{ isset($gallery) && $category->id == $gallery->category_id?'selected':''}}>{{$category->name}}</option>
            @endforeach
        </select>
    
    

    if() を使用する代わりに三項演算子を使用できます 。

    多対多の関係がある場合は、試すことができます

    <select class="form-control" name="category_id">
            @foreach($categories as $category)
                <option value="{{$category->id}}"  {{$movie->categories->contains('name', $category->name )?'selected':'' @endif >{{$category->name}}</option>
            @endforeach
        </select>
    
    

    お役に立てれば。

あなたの答え