User.php
namespace ESP;
use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
use DB;
class User extends Model implements AuthenticatableContract, CanResetPasswordContract
{
use Authenticatable, CanResetPassword;
protected $table = 'users';
protected $primaryKey = 'id';
public function companies(){
return $this->belongsToMany('ESP\Company', 'company_user', 'user_id', 'company_id');
}
public function scopeUsername($query, $username){
return $query->where('username', '=', $username);
}
}
Company.php
namespace ESP;
use Illuminate\Database\Eloquent\Model; use DB;
class Company extends Model {
protected $table = 'companies';
protected $primaryKey = 'id';
public function users(){
return $this->belongsToMany('ESP\User');
}
}
LoginController.php
namespace ESP\Http\Controllers\Login;
use ESP\Http\Requests;
use ESP\Http\Controllers\Controller; use ESP\CustomClass\LDAP\adLDAP;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Redirect;
use ESP\LoginAttempts;
use ESP\Helpers\UtilityHelper;
use ESP\User;
use DB;
use Auth;
use Session;
use View;
use Paginator;
use DateTime;
use Input;
class LoginController extends Controller
{
private function _authenticateClient($username, $password)
{
$g = User::with('companies')
->where( 'username', $username )
->where( 'password', md5( $password ) )
->get();
dd($g);
}
}
错误有类似的内容。
BadMethodCallException in Builder.php line 2405: Call to undefined method Illuminate\Database\Query\Builder::companies()
我甚至无法在控制器调用中使用本地范围用户名。
这款型号在我的laravel 5.1上运行得非常好。但我试图将我的代码库迁移到5.3并且我坚持这个问题。
答案 0 :(得分:0)
您可以查看app / config / auth.php
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\ESP\User::class,
]
],
确保您正确注册了用户模型。