2013-11-17 2 views
0

Я использую zizaco/confide в сочетании с cviebrock/eloquent-sluggable.Laravel Confide не запускать eloquent.saving

eloquent-sluggable использует Events::listen('eloquent.saving*') для генерирования пули во время/до сохранения.

// Cviebrock\EloquentSluggable\SluggableServiceProvider:55 

public function registerEvents() 
{ 
    $app = $this->app; 

    $app['events']->listen('eloquent.saving*', function($model) use ($app) 
    { 
     $app['sluggable']->make($model); 
    }); 
} 

Поскольку я перешел на Confide для аутентификации, слизняки не генерируются.

Моя модель пользователя просто class User extends ConfideUser. Переключение на класс User extends Ardent или User extends Eloquent Событие eloquent.saving получает срабатывание штрафа.

Я не уверен, если это ошибка, или я что-то упустил.

My Model:

<?php 

use Illuminate\Database\Eloquent\Model; 
use Zizaco\Confide\ConfideUser; 

class User extends ConfideUser 
{ 

    public $autoPurgeRedundantAttributes = true; 

    /** 
    * The database table used by the model. 
    * 
    * @var string 
    */ 
    protected $table = 'users'; 


    /** 
    * Soft delete 
    * 
    * @var boolean 
    */ 
    protected $softDelete = true; 

    /** 
    * The attributes excluded from the model's JSON form. 
    * 
    * @var array 
    */ 
    protected $hidden = array('password'); 

    /** 
    * The attributes that are mass assignable. 
    * 
    * @var array 
    */ 
    protected $fillable = array(
     'nickname', 
     'password', 
     'email', 
     'deleted_at', 
     'disabled', 
     'firstname', 
     'lastname', 
     'birthday', 
     // needed by ardent 
     'email_confirmation', 
     'password_confirmation' 
    ); 

    public static $rules = array(
     'firstname' => 'required', 
     'email' => 'required|email|confirmed|unique:users', 
     'email_confirmation' => 'required', 
     'nickname' => 'required|min:2|unique:users', 
     'birthday' => 'date:d.m.Y|before:now', 
     'password' => 'required|min:5|confirmed', 
     'password_confirmation' => 'required' 
    ); 

    public $imageSizes = array(
     array(64, 64), 
     array(250, 250) 
    ); 

    public static $sluggable = array(
     'build_from' => 'nickname', 
     'save_to' => 'slug', 
    ); 

    /** 
    * Roles 
    * 
    * @return object 
    */ 
    public function roles() 
    { 
     return $this->belongsToMany(
      'Role', 
      'role_user' 
     ) 
      ->withTimestamps();; 
    } 

} 

ответ

0

Кажется мне, как это одна является ошибка: (!) https://github.com/Zizaco/confide/issues/179

В качестве временного решения можно обернуть метод beforeSave() в вашей модели без возвращения ничего:

public function beforeSave($forced = false) 
{ 
    parent::beforeSave($forced); 
} 
Смежные вопросы