我已按照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 的项目中使用此软件包时,它可以正常工作。
答案 0 :(得分:1)
经过多次搜索并尝试试验和错误后,首先我删除了包,然后在“laravel / framework”之后插入“cviebrock / eloquent-sluggable”:“dev-master”: “5.1。*”,以及 composer.json 文件中的其他包之前。
更新作曲家后,它工作正常。 我不知道为什么会这样。