将数组从控制器传递到laravel模型
问题描述:
我想知道如何将数组从laravel控制器传递到laravel模型。因此,我可以使用模型将它们保存到db中。我不想让我的控制器沉重,因为我要求这样做。当我一直保存表单提交到数据库,我应该把我的保存功能?在控制器或模型?将数组从控制器传递到laravel模型
答
Laravel有一种叫做Mass Assignment。让我们传递一个关联数组并用这些值填充模型。为了使它工作,你必须确定你希望能够在你的模型质量分配属性:
protected $fillable = ['foo', 'bar', 'and', 'much', 'more'];
现在,你可以只传递一个数组到模型的构造:
$input = [
'foo' => 'value1',
'bar' => 'value2',
'and' => 'value3',
'much' => 'value4',
'more' => 'value5',
];
$model = new Model($input);
$model->save();
或者更短,使用create()
方法,填补了模型,并直接将其保存算账:
Model::create($input);
答
试试这个..
//In Model get data from controller
public function functionname($data1, $data2){
//query
}
//In Controller sent data to Model
$data = Modelname::functionname($data1, $data2)->get();
是的,我知道这gurded $,$可填写的东西。但是我想把save()方法放到模型 – Mahmoodur 2015-02-06 09:35:46
那么'save()'方法在模型中......如果你的意思是你想要在模型中检索用户输入,那么这是不好的做法。该模型只是数据层,不应该担心从数据获取的位置。 'Model :: create(Input :: all())'不好吗? – lukasgeiter 2015-02-06 09:45:16
好的。得到它了。谢谢lukasgeiter – Mahmoodur 2015-02-07 06:33:58