2016-09-06 8 views
0

У меня есть следующие модели:Laravel 5.1 Массовое присвоение заполняемых свойств игнорируется при обновлении?

class User { 

    public function recruiter() 
    { 
     return $this->hasOne('App\Recruiter'); 
    } 

} 

class Recruiter extends Model { 

    public function jobs() 
    { 
     return $this->hasMany('App\Job'); 
    } 

} 

class Job extends Model { 

    protected $fillable = [ 
     'job_type_id', 
     'recruiter_id', 
     'start_at', 
     'end_at', 
     'job_title', 
     'job_ref', 
     'job_desc' 

    ]; 

    // other stuff 
} 

Когда я звоню следующий метод создания в заполняемых свойства на модели работы работы, как ожидалось.

$job = Auth::user()->recruiter->jobs()->create($request->all()); 

Когда я вызываю метод обновления, заполняемые свойства игнорируются и в конечном итоге становятся жертвами массового присвоения.

Auth::user()->recruiter->jobs()->update($request->all()); 

Почему это происходит?

+0

Вы пытались 'var_dump()' '$ request-> all()'? Если да, то что он возвращает? – Robin

ответ

0

Это потому, что вам нужно передать id работы (Laravel dosen't знает, что обновить). Так добавлен в массив fillable.

class Job extends Model { 

    protected $fillable = [ 
     'id', 
     'job_type_id', 
     'recruiter_id', 
     'start_at', 
     'end_at', 
     'job_title', 
     'job_ref', 
     'job_desc' 

    ]; 

    // other stuff 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^