Laravel 4 - 更新数据透视表

时间:2014-07-20 16:31:46

标签: database laravel-4 eloquent updates pivot-table

我有一个带有表单的“编辑页面”,我想更新一些数据。

我的模特:

Actividad.php:

 public function materials()
        {       
            return $this->belongsToMany('Material', 'actividad_material')->withTimestamps();

        }

和Material.php:

public function actividads()
{
    return $this->belongsToMany('Actividad', 'actividad_material')->withTimestamps();
}

我的代码(控制器):

public function update($id)
{
    $input = array_except(Input::all(), '_method');

    $v = Validator::make($input, Actividad::$rules);
    // return 'Hala';
    if($v->passes())
    {

        $actividad = Actividad::find($id);
        $material_id = Input::get('material_id');           
        $actividad->materials()->sync($material_id);

        Actividad::find($id)->update($input);

        // return 'hola';
        return Redirect::route('actividads.index');
    }

    return Redirect::back()->withErrors($v);
}

该应用程序给我一个错误:

  

SQLSTATE [42S22]:未找到列:1054'字段列表'中的未知列'material_id'(SQL:update actividads set updated_at = 2014-07-20 16:20:03, material_id = 1其中id = 16)

我想这是因为它正在寻找我的'actividads'中尚未存在的专栏!也许我必须改变$input = array_except(Input::all(), '_method'); ...我想我已经说过了,表格中的每一个输入都在我的'Actividad'中,这不是真的。我需要使用'material_id'更新我的数据透视表。

非常感谢你!

0 个答案:

没有答案