Я пытаюсь сохранить полиморфные отношения при регистрации пользователя, но он возвращает меня:
Call to undefined method Illuminate\Database\Query\Builder::save()
У меня есть 3 таблицы в моей базе данных:
Schema::create('usuarios', function(Blueprint $table) { $table->increments('id'); $table->string('nombreUsuario', 20); $table->string('password', 60); $table->string('email', 30); $table->string('remember_token', 100)->nullable(); $table->integer('cuenta_id'); $table->string('cuenta_type'); $table->timestamps(); }); Schema::create('empresas', function(Blueprint $table) { $table->increments('id'); $table->string('nombreEmpresa', 50); $table->string('direccion', 50); $table->timestamps(); }); Schema::create('alumnos', function(Blueprint $table) { $table->increments('id'); $table->string('nombre', 50); $table->string('apellidoPaterno', 50); $table->string('apellidoMaterno', 50); $table->integer('semestre'); $table->timestamps(); });
На моем контроллере, когда пользователь регистрируется:
$alumno = new Alumno; $alumno->nombre = Input::get('nombre'); $alumno->apellidoPaterno = Input::get('paterno'); $alumno->apellidoMaterno = Input::get('materno'); $alumno->semestre = Input::get('semestre'); $alumno->save(); $usuario = new User; $usuario->nombreUsuario = Input::get('usuario'); $usuario->password = Hash::make(Input::get('password')); $usuario->email = Input::get('email'); $usuario->cuenta()->save($alumno); // <--Here
Модели:
<?php use Illuminate\Auth\UserInterface; use Illuminate\Auth\Reminders\RemindableInterface; class User extends Eloquent implements UserInterface, RemindableInterface { ... public function cuenta() { return $this->morphTo(); } } <?php class Alumno extends Eloquent { protected $fillable = []; public function user() { return $this->morphMany('User', 'cuenta'); } } <?php class Empresa extends Eloquent { protected $fillable = []; public function user() { return $this->morphMany('User', 'cuenta'); } }
Каждый раз, когда я пытаюсь зарегистрировать кого-то, он возвращает эту ошибку .
Если было бы здорово, если бы кто-то мог показать мне, что я делаю неправильно. Благодарю. 🙂
Обновить
Изменен способ сохранения моделей:
$alumno->save(); $usuario->save(); $usuario->cuenta()->save($alumno);
Он возвращает Call to undefined method Illuminate \ Database \ Query \ Builder :: save ()
Также используется:
$alumno->save(); $usuario->save(); $usuario->cuenta()->associate($alumno);
Он возвращает
Maximum function nesting level of '100' reached, aborting!
Должен ли я использовать FK?