2013-04-19 1 views
2

Короче говоря, у красноречивого Laravel есть что-то вроде функции sync(), которая не сохраняет отношения с базой данных сразу же?Laravel eloquent has_many_and_belongs_to sync() без записи в базу данных

У меня есть две модели

Place (id, name, address); 

и

Feature (id, name); 

Эти две модели имеет отношения has_many_and_belongs_to друг с другом, используя сводную таблицу feature_place(place_id, feature_id). Это работает так, как ожидалось. Теперь я пытаюсь создать форму для создания нового места. Форма содержит флажок для каждой существующей функции. Для обработки ошибок я хочу иметь возможность создать объект Place при отправке формы. Я хотел бы иметь возможность создавать отношения HABTM, поэтому я могу легко перестроить и заполнить форму, если отправка не выполнена (ошибка проверки или аналогичная). sync(), как правило, обрабатывает отношения, но поскольку представление не удалось, я не хочу вставлять Place в базу данных. Есть ли простой способ, например, sync(), чтобы создать отношения между моим Place и это Features, что я могу использовать для перепрофилирования моей формы при перестройке, без необходимости писать в базу данных до того, как подача заявки будет успешной?

ответ

0

Звучит так, как будто вам нужно выполнить флеш-ввод на сеанс, а затем загрузить старые значения при визуализации формы.

// Somewhere in your post route 
if ($oh_noes_teh_validator_failed) 
{ 
    Input::flash(); 
    Redirect::to_route('my-edit-form'); 
} 

// Somewhere in your edit route or view 
$title = Input::old('title', $title); 
+0

Это перенесет данные, да, но это не дает мне структуру модели, чтобы иметь возможность построить такую ​​же форму, как для «создать новое место» и «изменить существующее место». В настоящее время я смотрю на [link] (http://bundles.laravel.com/bundle/former/) Former bundle, чтобы узнать, может ли это обработать для меня создание/валидация/перестройка формы. Пока это выглядит многообещающе. – Jarlskov