laravel вставить новую строку, которая имеет ключ из другой таблицы и нулевые столбцы

Это мой ресторанный стол:

введите описание изображения здесь

стол ресторана имеет поле adminID . и это таблица администратора: введите описание изображения здесь

У меня есть форма, которая имеет значения как ресторана, так и администратора,

Это модель администратора:

 class Admin extends Eloquent implements UserInterface, RemindableInterface { use UserTrait, RemindableTrait; public function restaurant(){ return $this->belongsTo('Restaurant', 'ID'); } 

Это модель ресторана:

 class Restaurant extends Eloquent implements UserInterface, RemindableInterface { use UserTrait, RemindableTrait; public function admin(){ return $this->hasOne('Admin', 'adminID'); } 

Это ресторан ControlController для хранения нового ресторана

 $input = Input::all(); $validation = Validator::make($input, Admin::$rules); if($validation->passes()){ $validation = Validator::make($input, Restaurant::$rules); if ($validation->passes()) { $admin = Admin::create(Input::only('username', 'password', 'mobileNumber', 'firstName', 'lastName')); 

как вы видите теперь, у меня есть переменная $admin ,

Мой вопрос

что такое statmnet, что мне нужно, чтобы вставить новый ресторан

  1. обратите внимание, что я могу взять adminID из $ admin-> id
  2. обратите внимание, что в ресторане есть нулевые столбцы, такие как логотип и адресManualID

Во-первых, вам не нужно реализовывать UserInterface и RemindableInterface а также не использовать use UserTrait, RemindableTrait для создания всех ваших моделей, но только модель User если у вас есть модель пользователя для аутентификации пользователя (вход / выход) , Если модель Admin используется в качестве замены модели User вам необходимо реализовать эти интерфейсы, а также использовать эти черты. Также вам нужно явно объявить свойство protected $table для назначения имени таблицы, которое используется для модели Admin (если вы не используете модель User ), а также вам нужно изменить некоторые параметры в файле app/config/auth.php как нижеприведенный:

 'model' => 'Admin', 'table' => 'admins', // Could be anything else, same as protected $table property 

Затем попробуйте следовать, чтобы сохранить связанную модель при создании Admin :

 //... if ($validation->passes()) { $admin = Admin::create( Input::only('username', ...) ); $restaurent = new Restaurant(Input::only(...)); $admin->restaurant()->save($restaurent); } 

Вы захотите использовать метод associate() .

 $restaurant = Restaurant::find(10); $restaurant->admin()->associate($admin); $restaurant->save(); - $restaurant = Restaurant::find(10); $restaurant->admin()->associate($admin); $restaurant->save(); 

Ссылка: http://laravel.com/docs/eloquent#inserting-related-models