Laravel予期せぬエラー "クラスuserに3つの抽象メソッドがあります..."
2023-10-14 13:31:01
質問
Laravelで認証アプリをプログラミングしているときに、今まで見たことのないエラーに出くわしました。この問題の原因について1時間近く考えましたが、まだ解決策が見つかりません。
エラーです。
クラスUserは3つの抽象メソッドを含んでいるので、抽象宣言するか、残りのメソッドを実装する必要があります (IlluminateAuthUserInterface::getRememberToken, IlluminateAuthUserInterface::setRememberToken, IlluminateAuthUserInterface::getRememberTokenName)
User.phpのモデルです。
<?php
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;
class User extends Eloquent implements UserInterface, RemindableInterface {
protected $fillable = [
"email",
"username",
"password",
"password_temp",
"code",
"active",
"created_at",
"updated_at",
"banned"
];
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'users';
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = array('password');
/**
* Get the unique identifier for the user.
*
* @return mixed
*/
public function getAuthIdentifier()
{
return $this->getKey();
}
/**
* Get the password for the user.
*
* @return string
*/
public function getAuthPassword()
{
return $this->password;
}
/**
* Get the e-mail address where password reminders are sent.
*
* @return string
*/
public function getReminderEmail()
{
return $this->email;
}
}
そして、RegisterController.phpは
<?php
class RegisterController extends BaseController {
public function getRegister()
{
return View::make('template.home.register');
}
public function postRegister()
{
$rules = [
"email" => "required|email|max:50|unique:users",
"username" => "required|max:50|min:5|unique:users",
"password" => "required|max:50|min:6",
"password_again"=> "required|same:password",
];
$messages = ["required" => "This field is required." ];
$validator = Validator::make(Input::all(), $rules, $messages);
if($validator->fails())
{
return Redirect::route('register')->withErrors($validator)->withInput();
} else {
$email = Input::get('email');
$username = Input::get('username');
$password = Input::get('password');
$code = str_random(60);
$user = User::create([
'email' => $email,
'username' => $username,
'password' => Hash::make($password),
'code' => $code,
'activated' => 0,
'banned' => 0
]);
if ($user)
{
Mail::send('template.email.activate', ['link' => URL::route('activate', $code), 'username' => $username], function($message) use ($user)
{
$message->to($user->email, $user->username)->subject('Account Registration');
});
return Redirect::route('register')->with('homeError', 'There was a problem creating your account.');
}
}
return Redirect::route('register')->with('homeError', 'Account could not be created.');
}
}
どのように解決するのですか?
あったあった。
Laravel Updateのドキュメントらしいです。
Laravelのドキュメントを確認し、問題を解決することができます。
"まず、usersテーブルにVARCHAR(100)、TEXT、または同等の値のnullable remember_tokenを新規に追加してください。
次に、Eloquent認証ドライバを使用している場合、Userクラスに以下の3つのメソッドを追加して更新します。
public function getRememberToken()
{
return $this->remember_token;
}
public function setRememberToken($value)
{
$this->remember_token = $value;
}
public function getRememberTokenName()
{
return 'remember_token';
}
"
参照 http://laravel.com/docs/upgrade をご覧ください。
関連
-
[解決済み】Notice: 非オブジェクトのプロパティを取得しようとしているエラー
-
[解決済み】PHP - 構文エラー、予期しないT_CONSTANT_ECAPSED_STRING [閉店].
-
[解決済み】XAMPPエラー: www.example.com:443:0 サーバー証明書に、サーバー名と一致するIDが含まれていません。
-
[解決済み】foreach()に与えられた引数が無効です。)
-
[解決済み】Phpのincludeが機能しない? 関数がincludeされない
-
[解決済み】ディレクトリ内のファイル数を数える PHP
-
[解決済み】phpMyAdmin: シークレットパスフレーズ?
-
[解決済み】PHPのクラスが見つからないが、インクルードされている
-
[解決済み] $_SERVER['DOCUMENT_ROOT'] と $_SERVER['HTTP_HOST'] の違いについて
-
[解決済み] 致命的なエラーです。mysqli_result 型のオブジェクトを使用できません [終了] 。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Weird PHP error: 'Can't use function return value in write context'.
-
[解決済み] [Solved] Fatal error: メンバ関数prepare()のNULLでの呼び出し
-
[解決済み】move_uploaded_fileは、「failed to open stream: Permission denied" というエラーが出る
-
[解決済み】メンバ関数をnullで呼び出す?
-
[解決済み】php, mysql - データベースへの接続数が多すぎるエラー
-
[解決済み】ディレクトリ内のファイル数を数える PHP
-
[解決済み】Laravel 5.2 Storage::makeDirectory($dir) でディレクトリが作成されない。
-
[解決済み】PHPのクラスが見つからないが、インクルードされている
-
[解決済み】/var/www/htmlとは何ですか?[クローズド]
-
[解決済み] Forbidden :このサーバーの /phpmyadmin にアクセスする権限がありません。