У меня есть форма, которая допускает несколько записей в базу данных. Каждая из этих строк содержит поле для загрузки файлов.Ошибка Laravel: 'preg_replace(): Несоответствие параметра' для множественной вставки файла
Поля создаются следующим образом:
{{ Form::select('revision[]', ['0' => '0', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6'], '0', ['class' => 'form-control artwork-revision']); }}
{{ Form::text('product[]', false, ['class' => 'form-control artwork-product', 'placeholder' => 'Please enter the product name']) }}
{{ Form::file('file[]', ['class' => 'artwork-file']) }}
Мой контроллер имеет цикл по каждому элементу для ввода каждой строки в базу данных, но когда я запускаю его, я получаю следующее сообщение об ошибке: preg_replace(): Parameter mismatch, pattern is a string while replacement is an array
код работает, когда он адаптирован для загрузки одного файла (т. е. без цикла foreach и только с одной строкой, которые должны быть вставлены, поля, созданные без квадратных скобок)
Как пропустить эту ошибку и ввести информацию в d atabase?
Вот петля foreach в моем контроллере и var_dump
объекта.
Контроллер петли Еогеасп:
$files = Input::file('file');
foreach($files as $file) {
// it's a new artwork row
$artwork = new Artwork;
// get the vars
$artwork->job_id = Input::get('job_id');
$artwork->revision = Input::get('revision');
$artwork->product = Input::get('product');
// it's pending
$artwork->status = 'P';
// sort the filename...
$filename = $file->getClientOriginalName();
$file = $file->move(base_path() . '/public/artwork/' . Input::get('job_id'), $filename);
// ...and put it in the $artwork object
$artwork->filename = 'artwork/' . $artwork->job_id . '/' . $filename;
// save it
$artwork->save();
}
var_dump ($ работа) выход - обратите внимание, что только одно изображение файла показывает в этом, а не два:
object(Artwork)#243 (21) {
["dates":protected]=>
array(1) {
[0]=>
string(10) "deleted_at"
}
["fillable":protected]=>
array(6) {
[0]=>
string(6) "job_id"
[1]=>
string(8) "filename"
[2]=>
string(6) "status"
[3]=>
string(8) "revision"
[4]=>
string(7) "product"
[5]=>
string(6) "reason"
}
["table":protected]=>
string(8) "artworks"
["connection":protected]=>
NULL
["primaryKey":protected]=>
string(2) "id"
["perPage":protected]=>
int(15)
["incrementing"]=>
bool(true)
["timestamps"]=>
bool(true)
["attributes":protected]=>
array(5) {
["job_id"]=>
string(1) "5"
["revision"]=>
array(2) {
[0]=>
string(1) "0"
[1]=>
string(1) "0"
}
["product"]=>
array(2) {
[0]=>
string(15) "Twist USB Drive"
[1]=>
string(19) "Eco Twist USB Drive"
}
["status"]=>
string(1) "P"
["filename"]=>
string(24) "artwork/5/12345-test.jpg"
}
["original":protected]=>
array(0) {
}
["relations":protected]=>
array(0) {
}
["hidden":protected]=>
array(0) {
}
["visible":protected]=>
array(0) {
}
["appends":protected]=>
array(0) {
}
["guarded":protected]=>
array(1) {
[0]=>
string(1) "*"
}
["touches":protected]=>
array(0) {
}
["observables":protected]=>
array(0) {
}
["with":protected]=>
array(0) {
}
["morphClass":protected]=>
NULL
["exists"]=>
bool(false)
["forceDeleting":protected]=>
bool(false)
}
-1 Это часть вашего вопроса. Это не ответ. –
Нет, это рабочий контроллер, который решает проблему –
Ooops, так что извините, удалите мой голос, затем –