SORU
15 NİSAN 2014, Salı


Laravel beklenmeyen bir hata "class kullanıcı içeren 3 soyut yöntemler..."

Laravel, kimlik Doğrulama uygulamam programlama arasında daha önce hiç görmediğim bir hata için geldim. Bu sorunun nedeni için neredeyse bir saat beyin fırtınası yaptım ama henüz bir çözüm bulamadım.

Hata:

Sınıf Kullanıcı içeren 3 soyut yöntemler ve bu nedenle ilan soyut ya da uygulamak kalan yöntemleri (Aydınlatmak\Auth\Userİnterface::getRememberToken, Aydınlatmak\Auth\Userİnterface::setRememberToken, Aydınlatmak\Auth\Userİnterface::getRememberTokenName)

User.php Model:

<?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;
}

}

Ve 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.');
}
}

Senin yardım için teşekkür ederiz.

CEVAP
15 NİSAN 2014, Salı


Ah buldum.

Görünüşe göre belgelenmiş Laravel Güncelleme.

Laravel docs sorunları düzeltmek için kontrol edebilirsiniz:

"İlk olarak, ikilik(100) yeni, null bir remember_token, METİN veya kullanıcı tablonuza eşdeğer ekleyin.

Eğer Beliğ kimlik doğrulama sürücüsü kullanıyorsanız, aşağıdaki üç yöntem ile sınıfı: Kullanıcı güncelleştirin

public function getRememberToken()
{
    return $this->remember_token;
}

public function setRememberToken($value)
{
    $this->remember_token = $value;
}

public function getRememberTokenName()
{
    return 'remember_token';
}

"

Daha fazla ayrıntı için http://laravel.com/docs/upgrade bkz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Atlantic Records

    Atlantic Rec

    15 Aralık 2006
  • Damien Walters

    Damien Walte

    20 AĞUSTOS 2006
  • My Name Is Jeff

    My Name Is J

    26 ŞUBAT 2008