如何在laravel上设置选定的选项

时间:2016-10-23 11:09:48

标签: php html laravel

我想在我的下拉列表中设置所选的选项, 我已经设置了这样的代码

@foreach($news as $news_data)
    @if($news_data->category_id)
      <option value="{{ $news_data->category_id }}" selected>{{ $news->category }}</option>
    @else
      <option value="{{ $news_data->id }}">{{ $news_data->category }}</option>
    @endif  
@endforeach 

这是我的控制器

public function edit($id)
{
    /*show current selected*/
    $news = News::find($id)
      ->leftJoin('categories','news.category_id', '=', 'categories.id')
      ->select('news.category_id', 'news.content', 'news.title' ,'categories.category', 'categories.id')
      ->where('news.id', '=', $id)
      ->get()->first();

      // /dd($news->id);

    return view('news.update')
    ->with('news', $news);

}

但我得到这样的错误

  

尝试获取非对象的属性

3 个答案:

答案 0 :(得分:0)

你只是抓住第一个数据并迭代它。 dd($news);给你什么?

答案 1 :(得分:0)

我在这里发布这些片段时遇到了一些麻烦。

检查出来:

http://laravel.io/bin/0eYar

希望它有所帮助。

答案 2 :(得分:0)

您没有选择news.id。但是您查看了$news_data->id

的视图页面
<option value="{{ $news_data->id }}">{{ $news_data->category }}</option>

试试这个:

$news = News::leftJoin('categories','news.category_id', '=', 'categories.id')
      ->select('news.id','news.category_id', 'news.content', 'news.title' ,'categories.category', 'categories.id')
      ->where('news.id', '=', $id)
      ->get();