遵循所有安装指南并重新安装时,cviebrock / eloquent-sluggable不起作用

时间:2015-11-08 17:29:25

标签: php laravel-5

我已按照eloquent-sluggable中的安装指南进行操作。

这是我的帖子模型结构:

namespace App;
use Cviebrock\EloquentSluggable\SluggableInterface;
use Cviebrock\EloquentSluggable\SluggableTrait;
use Illuminate\Database\Eloquent\Model;

class Post extends Model implements SluggableInterface
{
    use SluggableTrait;
    protected $sluggable = [
        'build_from' => 'post_title',
        'save_to'    => 'post_alias',
        'unique'     => true
    ];

    protected $guarded    = ['hits', 'comments_count', 'created_at', 'updated_at'];
    protected $primaryKey = 'post_id';

    protected $dateFormat = 'U';

    public function post_pics ()
    {
        return $this->hasMany('App\PostPics');
    }

    public function categories ()
    {
        return $this->belongsToMany('App\Category', 'category_post', 'post_id', 'cat_id');
    }

    public function getCreatedAtAttribute($value){
        return $value;
    }
}

并在 app.php 文件中添加了适当的服务提供商条目:

yajra\Datatables\DatatablesServiceProvider::class,
Spatie\Glide\GlideServiceProvider::class,
Illuminate\Html\HtmlServiceProvider::class,
Cviebrock\EloquentSluggable\SluggableServiceProvider::class,

但是当向Post Table插入新行时, post_alias 字段为空:

$newPost = new Post(['post_title'=>'How are you']);
$newPost->save();

什么是问题,我该如何解决?

更新
我使用 Laravel Framework版本5.1.23 (LTS)。但是,当我在另一个基于版本5.1.19 的项目中使用此软件包时,它可以正常工作。

1 个答案:

答案 0 :(得分:1)

经过多次搜索并尝试试验和错误后,首先我删除了包,然后在“laravel / framework”之后插入“cviebrock / eloquent-sluggable”:“dev-master”: “5.1。*”,以及 composer.json 文件中的其他包之前。

更新作曲家后,它工作正常。 我不知道为什么会这样。