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);
}
}
Ошибка имеет что-то вроде этого.Ошибка Laravel при высоких нагрузках при переносе с 5.1 до 5.3
BadMethodCallException in Builder.php line 2405: Call to undefined method Illuminate\Database\Query\Builder::companies()
Я даже не могу использовать локальную область имени пользователя на моем вызове контроллера.
Эти модели отлично работают на моем laravel 5.1. Но я пытаюсь перенести свою кодовую базу на 5.3 и им прилипнуть к этим проблемам.
Изменения (интерфейсы и черты) 'User' model like here: https://github.com/laravel/laravel/blob/master/app/User.php –
Я уже изменил модель пользователя. im все равно получает ту же ошибку –
namespace ESP; использование Illuminate \ Foundation \ Auth \ User as Authenticatable; класс Пользователь расширяет Authenticatable { \t protected $ primaryKey = 'id'; \t protected $ fillable = ['username', 'email', 'password']; \t protected $ guarded = ['id']; \t protected $ hidden = ['password', 'remember_token']; \t общественные функции компании() { return $ this-> принадлежитToMany ('ESP \ Company'); } \t public function components() { return $ this-> принадлежит к (ESP \ Component '); } } –