Мне нужно сохранить точно три страницы сразу через форму. Я хотел бы сохранить так же, как метод save(), потому что это автоматически обновит метки времени записи.Laravel 5.2 несколько моделей save()
Как это сделать для нескольких записей одновременно?
Моя страница Модель:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Page extends Model{
protected $table = 'simple_pages';
}
Мой код:
public function createPages(Request $request){ // I use Page at the top
$data = [
[
'title'=> $request->first,
'content'=> $request->firstCont
],[
'title'=> $request->second,
'content'=> $request->secondCont
][
'title'=> $request->third,
'content'=> $request->thirdCont
]
];
Page::unguard();
$pages = new Page($data);
$pages->save(); // Something like this would be amazing
Page::reguard();
}
Примечание: Я сильно против создания нескольких экземпляров модели страницы, а затем цикл их чтобы сохранить их каждую индивидуальность. Кроме того, я не хочу использовать вставку DB, потому что она не будет автоматически обновлять метки времени.
Спасибо за ответ. Я уже читал официальные документы, но мне это не помогло. Page :: create ($ data) создает исключение (preg_match() ожидает, что параметр 2 будет строкой, заданный массив); Я также попробовал Page :: create ([... first ....], [... second ....], [... third ....]), но он просто вставляет одну пустую запись в базы данных, чего я не хочу достичь. – Fusion
Но если ваши столбцы не указаны внутри 'protected $ fillable = []', это не будет работать. Если вы установили '$ fillable' и ваши массивы установлены, вам нужно убедиться, что ваши значения - это строки, а не массивы. то есть '$ request-> first' и' $ request-> firstCont' – ash
Я использовал методы модели unguard() и reguard(). Поэтому охраняемый/заполняемый не должен быть проблемой здесь (или это?). Если это будет проблема, Laravel исключит исключение массового назначения). Я на 100% уверен, о содержании моих запросов. Недавно я проверил dd(). Все они - струны. – Fusion