2015-08-24 9 views
5

Im cố gắng để tạo ra một api đăng nhập và đã theo liên kết https://github.com/yiisoft/yii2/blob/master/docs/guide/security-authentication.mdĐối số 1 truyền cho Yii web User :: login() phải thực hiện giao diện yii web IdentityInterfac, null cho

url ở trên nói:

Để đăng nhập người dùng, bạn có thể sử dụng đoạn mã sau:

// find a user identity with the specified username. 
// note that you may want to check the password if needed 
$identity = User::findOne(['username' => $username]); 

// logs in the user 
Yii::$app->user->login($identity); 

nơi nên dòng này được thêm vào trong hành động điều khiển hoặc các lớp mà thực hiện IdentityInterface.

Mở thêm dòng trên trong hành động điều khiển nhưng tôi nhận được lỗi nói Argument 1 passed to yii\web\User::login() must implement interface yii\web\IdentityInterface, null given, called in C:\wamp\www\basic\controllers\MyController.php on line 202 và xác định nơi như các lớp học mà tôi amy thực hiện giao diện danh tính là thực tế một mô hình gọi là myuser (ứng dụng \ mô hình \ myuser).

Tại sao nói yii\web\User::login() phải triển khai giao diện nhận dạng?

Và nếu nó được thêm vào trong lớp Myuser thì các thông số được đăng sẽ được chuyển đến hàm đăng nhập như thế nào?

Có ai có thể giúp tôi trong việc này không?

Trả lời

2

mô hình User của bạn phải thực hiện IdentityInterface

class User extends \yii\db\ActiveRecord implements \yii\web\IdentityInterface{ 
    ... 
} 
+0

của nó là .. tôi có Infact thêm implemets để mô hình myuser. Xin lưu ý rằng im không sử dụng chế độ Người dùng yii2 mặc định. Im sử dụng mô hình tùy chỉnh của riêng tôi myUser activeRecord. – DpGp

+0

triển khai IdentityInterface, nó là bắt buộc. –

0
Yii::$app->getUser()->login($user); 
var_dump($user); 

Hãy thử nó, bạn có thể nhận được câu trả lời.

Tôi đã gặp vấn đề tương tự với bạn và đã giải quyết. var_dump($user), bạn có thể biết

+0

Thêm một số giải thích với câu trả lời cho câu trả lời này giúp OP trong việc khắc phục sự cố hiện tại –

0

bạn có thể thực hiện nhiều hơn một giao diện,

User extends \yii\db\ActiveRecord implements IdentityInterface, OtherInterface 
{ 
... 
} 
Các vấn đề liên quan