Laravel 5.3 + Sentinel: BadMethodCallException в строке Builder.php 2450

Я пытаюсь создать свое первое приложение Laravel, следуя нескольким инструкциям в Интернете, и мне кажется, что я упускаю что-то очевидное. Вот код

ошибка

BadMethodCallException в строке Builder.php 2450: вызов неопределенного
метод Illuminate \ Database \ Query \ Builder :: address ()

User-модель

<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Sentinel;

class User extends Authenticatable
{
use Notifiable;

protected $fillable = [
'email', 'password',
];

protected $hidden = [
'password',
'remember_token'
];

public function addresses()
{
return $this->hasMany('App\CustomerAddress');
}
}

CustomerAddress-модель

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;

class CustomerAddress extends Model
{
public function user()
{
return $this->belongsTo('App\User');
}
}

CustomerAddress-контроллер

<?php
namespace App\Http\Controllers;
use App\CustomerAddress;
use Illuminate\Http\Request;

class CustomerAddressController extends Controller
{
public function create(Request $request)
{
$address = new CustomerAddress();
$address->address = $request['address'];
$request->user()->addresses()->save($address);
}
}

Ошибка появляется после этого куска кода:

$request->user()->addresses()->save($address);

Есть идеи? Спасибо и ура

0

Решение

  • В .config / cartalyst.sentinel.php, изменить 'model' => 'Cartalyst\Sentinel\Users\EloquentUser' в 'model' => 'App\User' использовать вашу модель пользователя с addresses отношение определено
  • In ./app/User change User extends Authenticatable в User extends \Cartalyst\Sentinel\Users\EloquentUser расширить пользователя часового до модели пользователя вашего приложения
  • Наконец, код вашего контроллера теперь должен быть

`$ address = new CustomerAddress ();
$ address-> address = $ request-> input (‘address’);

$ Request-> пользователя () -> адреса () -> сохранить ($ адрес); `

и все должно быть персиковым

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]