2016-04-01 24 views
0

Yeni bir sistemi mevcut bir veritabanına entegre ediyorum.Özel Model ve alanlar Sentinel/Laravel

Kullanıcı tablomda varsayılan alan adları yok.

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'administrador.id' in 'where clause' (SQL: select * from `administrador` where `administrador`.`id` = 1 and `administrador`.`deleted_at` is null limit 1) 
:

Tüm isimlerin

Sentinel::check(), 

Bu mesaj hatası alıyorum yürütürken Sentinel o "Correo" Ayrıca

için bakmak gerekir email arar, İspanyolca, yani

Aslında, kimlik yok, PK olarak adlandırılır, administradorid

Yalnızca reso Bulduğum urce bir çok hızlıdır:

https://github.com/cartalyst/sentinel/wiki/Extending-Sentinel

O son derece kolay olduğunu söylüyor, ancak bu durumda söz etmeyin.

Yani, temel olarak, Sentinel Modelinin tüm alan adlarını nasıl özelleştirebilirim ???

class Administrador extends EloquentUser { 

protected $table = 'administrador'; 
protected $fillable = []; 
protected $guarded = ['administradorid']; 
protected $hidden = ['contrasena', 'remember_token']; 
use SoftDeletes; 

protected $dates = ['deleted_at']; 

} 

Herhangi bir yardım takdir edilecektir:

İşte benim modelidir!

cevap

1

İlk olarak, id sorunu temel bir Laravel Eloquent sorunudur. Modelinizin birincil anahtarı id değilse, modelinizde $primaryKey özelliğini doğru alan adına ayarlamanız gerekir. Ayrıca, birincil anahtarınız bir otomatikleştirme tamsayı değilse, özelliğini de false olarak ayarlamanız gerekir.

Bu, email sorunu için Sentinel'e özgü bir sorundur. EloquentUser sınıfında, kullanıcı oturum açmalarını içeren geçerli alan adlarının bir dizisine ayarlanmış bir $loginNames özelliği vardır. Varsayılan sadece ['email'], bu nedenle bu özelliği geçersiz kılmanız ve alan adınıza değiştirmeniz gerekiyor.

Yani, Administrador sınıf gibi bakıyor biter: Sen pk için benim kötü rightttt yeniden

class Administrador extends EloquentUser { 
    use SoftDeletes; 

    protected $table = 'administrador'; 
    protected $primaryKey = 'administradorid'; 
    //public $incrementing = false; // only if primary key is not an autoinc int 

    protected $fillable = []; 
    protected $guarded = ['administradorid']; 
    protected $hidden = ['contrasena', 'remember_token']; 
    protected $dates = ['deleted_at']; 

    // Sentinel overrides 

    // array of fields that hold login names 
    protected $loginNames = ['correo']; 
} 
+1

... ben o Pazartesi denemek ve da anlatacağız! Tx! –

+0

çalışır. Bir sonraki bölüm, karma yöntem aynı değildir -> http://stackoverflow.com/questions/36407296/hash-password-compatibility-between-yii-php-crypt-and-laravel-sentines –