Laravel编辑视图返回选中的所有复选框

时间:2014-01-20 21:32:20

标签: php checkbox laravel crud checked

我有两张桌子,基本的东西,类别和文章。 分类:

  • ID
  • 名称

文章:

  • id
  • title
  • category_id ...

关系

类别模型:

public function articles()
{
    return $this->hasMany('Article');
}

文章模型:

public function category()
{
    return $this->belongsTo('Category');
}

在控制器中编辑和更新方法:

public function getEdit($id)
    {
        $categories = Category::get();
        $articles = Article::with('category')->find($id);
        return View::make('articles.edit', compact('articles', 'categories'), array('title' => 'Promena clanka'));
    }

    public function updateEdit($id)
    {

        $validation = Validator::make(Input::all(), Article::$rules);

        if($validation->passes()) {
            $article = Article::find($id);
            $article->title = Input::get('title');
            $article->slug = Slug::make(Input::get('title'));
            $article->body = Input::get('body');
            $article->category_id = Input::get('category_id');
            $article->tag = Input::get('tag');
            $article->visibility = Input::get('visibility');
            $article->update();
            return Redirect::route('dashboard')->with('message', 'Uspesno promenjen clanak');
        }

        return Redirect::route('dashboard/article/edit/' . $id )->withErrors($validation);
    }

如何仅显示已选中具有category_id值的复选框。到目前为止,我得到了所有的检查。

@if(count($categories))
    @foreach($categories as $category)
        <div class="checkbox">
            {{Form::checkbox('category_id', $category->id ) }} <span>{{Str::Title($category->name) }}</span>
        </div>
    @endforeach
@endif

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

Form::checkbox采用可选的第三个参数来设置复选框以进行检查。您可以在isset上使用$category->id,它将返回一个布尔值(如果设置了$category->id,则为true)。

所以在你的循环中你可以做这样的事情:

{{Form::checkbox('category_id', $category->id, isset($category->id)}}