我在控制器中有这个逻辑:
// hydratation part 1 (cf son modele)
$matiere->fill($request->all());
// hydratation part 2 with attributes not in the POST
$matiere->id_ecole = Session::get('id_ecole');
$request->has('matiere_inactive') ? $matiere->matiere_inactive = '1' : $matiere->matiere_inactive = null;
if ($matiere->exists) {
$matiere->auteur_modif = Session::get('nom').' '.Session::get('prenom');
} else {
$matiere->auteur_creation = Session::get('nom').' '.Session::get('prenom');
}
我认为第2部分可能出现在模型中,而不是控制器(我喜欢'简短'控制器)。
这是个好主意吗?
如果是,我怎么能这样做?
我的模特是:
class Matiere extends Model {
protected $table = 'matiere';
protected $primaryKey = 'id_matiere';
protected $fillable = [
'id_matiere',
'code_court_matiere',
'libelle_matiere'
];
public function setCodeCourtMatiereAttribute($value)
{
$this->attributes['code_court_matiere'] = strtoupper($value);
}
public function setLibelleMatiereAttribute($value)
{
$this->attributes['libelle_matiere'] = ucwords($value);
}
}
感谢您的建议。祝所有读者新年快乐。 DOM
答案 0 :(得分:0)
你可以通过在Matiere模型上创建一个方法来做到这一点。
Here is a simple example:
ExampleController.php
$mat = new \App\Matiere();
$feedback = $mat->addm($request);
Matiere.php
public function addm($request)
{
$this->id_ecole = \Session::get('id_ecole');
$request->has('matiere_inactive') ? $this->matiere_inactive = '1' : $this->matiere_inactive = null;
$this->save();
return $this->id;
}