Я пытался сохранить данные из динамической формы в Laravel 5.3. Но я не могу сохранить его как массив. Ошибка показывает
Аргумент 1, передаваемый в Illuminate \ Database \ Grammar :: parameterize (), должен иметь тип массива, строка должна быть …
Форма:
<select class="form-control-sm" name="client_id[]">
<input type="text" class="form-control-sm" name="amount[]">
Модель:
protected $fillable = ['client_id', 'amount'];
public function client()
{
return $this->belongsTo('App\Client');
}
контроллер:
public function store(Request $request)
{
$count = Client::count();
$payment = Payment::create(['amount' => $request->amount,
'client_id' => $request->client_id,
]);
$payment->save();
return redirect()->action('PaymentController@index');
}
Пожалуйста, помогите в этом. Спасибо.
Вы отправляете форму с массивом текстовых полей и выберите поле, попробуйте
ниже
public function store(Request $request)
{
$count = Client::count();
foreach( $request->client_id as $key=>$val){
$payment = Payment::create(['amount' => $request->amount[$key],
'client_id' => $val,
]);
}
return redirect()->action('PaymentController@index');
}
Ты для создания записи так:
$payment = Payment::create($request->input);
И измените действие перенаправления на это:
View::make('path/to/view/')
или просто использовать просто back();
просто чтобы проверить, работает ли он