Laravel 5.3 + Sentinel:第 2450 行 Builder.php 中的 BadMethodCallException
Laravel 5.3 + Sentinel: BadMethodCallException in Builder.php line 2450
我正在尝试按照 Internet 上的一些指南构建我的第一个 Laravel 应用程序,但我觉得我遗漏了一些明显的东西。这是代码。
错误
BadMethodCallException in Builder.php line 2450: Call to undefined
method Illuminate\Database\Query\Builder::addresses()
用户模型
<?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');
}
}
客户地址模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class CustomerAddress extends Model
{
public function user()
{
return $this->belongsTo('App\User');
}
}
CustomerAddress-controller
<?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);
有什么想法吗?谢谢和欢呼
- 在 .config/cartalyst.sentinel.php 中,将
'model' => 'Cartalyst\Sentinel\Users\EloquentUser'
更改为 'model' => 'App\User'
以使用定义了 addresses
关系的用户模型
- 在 ./app/User 中将
User extends Authenticatable
更改为 User extends \Cartalyst\Sentinel\Users\EloquentUser
以将 sentinel 的用户扩展到您应用的用户模型
- 最后,您的控制器代码现在应该是
`$address = new CustomerAddress();
$地址->地址 = $请求->输入('address');
$request->user()->addresses()->save($address);`
一切都应该是桃色的
我正在尝试按照 Internet 上的一些指南构建我的第一个 Laravel 应用程序,但我觉得我遗漏了一些明显的东西。这是代码。
错误
BadMethodCallException in Builder.php line 2450: Call to undefined method Illuminate\Database\Query\Builder::addresses()
用户模型
<?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');
}
}
客户地址模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class CustomerAddress extends Model
{
public function user()
{
return $this->belongsTo('App\User');
}
}
CustomerAddress-controller
<?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);
有什么想法吗?谢谢和欢呼
- 在 .config/cartalyst.sentinel.php 中,将
'model' => 'Cartalyst\Sentinel\Users\EloquentUser'
更改为'model' => 'App\User'
以使用定义了addresses
关系的用户模型 - 在 ./app/User 中将
User extends Authenticatable
更改为User extends \Cartalyst\Sentinel\Users\EloquentUser
以将 sentinel 的用户扩展到您应用的用户模型 - 最后,您的控制器代码现在应该是
`$address = new CustomerAddress(); $地址->地址 = $请求->输入('address');
$request->user()->addresses()->save($address);`
一切都应该是桃色的