0
laravel 4에서 laravel 5로 마이그레이션합니다. Laravel 5 User Model과 호환되도록 User Model을 수정했습니다. Laravel 4의 사용자 모델은 같다 :Laravel 5의 "User Model"기능이 작동하지 않습니다.
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;
class User extends Eloquent implements UserInterface, RemindableInterface {
// some model relation functions..
...
public function getLocationId()
{
return $this->location_id;
}
}
나는 그것을 수정하고 새로운 사용자 모델은 지금과 같다 :
namespace App\Models;
use Illuminate\Auth\Authenticatable;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
use Illuminate\Database\Eloquent\Model as Eloquent;
class User extends Eloquent implements AuthenticatableContract, CanResetPasswordContract {
use Authenticatable, CanResetPassword;
// some model relation functions (some changes for namespace)
...
public function getLocationId()
{
return $this->location_id;
}
}
그러나, getLocationId 방법은 지금 문제가있다. 다음 행은 오류를 발생시킵니다.
$auth_location_id = Auth::user()->getLocationId();
이 오류입니다 :
BadMethodCallException in Builder.php line 2508:
Call to undefined method Illuminate\Database\Query\Builder::getLocationId()
가 어떻게 5 laravel하는 방법 호환 할 수 있습니까? 감사합니다 ..
업데이트 :
$auth_location_id = Auth::user()->getLocationId;
작동하지만이 비어 반환!
아래의 행은 올바르게 작동합니다.
use Illuminate\Foundation\Auth\User as Authenticatable;
을 그런 다음 내 모델이 있습니다 :
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
public function getLocationId()
{
return $this->location_id;
}
}
그래서 내가 안전 할 수
$auth_user_id = Auth::user()->getAuthIdentifier();
laravel의 버전은 무엇으로 이어질 수
희망, 당신은 업데이트하려고? 5.4? 그렇다면이 링크 [https://github.com/laravel/laravel/blob/master/app/User.php](https://github.com/laravel/laravel/blob/master/app/User.php)를 따르십시오.) – zgabievi
@zgabievi 예, 5.4입니다. – horse