我试图使用这里找到的Laravel缓存包:https://github.com/cviebrock/eloquent-sluggable
当我保存模型(例如产品)时,可缓慢的功能不会使我的模型变得迟钝。这是今天全新安装的Laravel。
我可以看到事件监听器触发(SluggableServiceProvider.php中的第43行),但似乎if($ model instanceof SluggableInterface)语句永远不会返回true并且永远不会使我的模型变得迟钝。这可能是名称间距问题吗?还有其他想法吗?
这是我的产品型号:
<?php
use Cviebrock\EloquentSluggable\SluggableInterface;
use Cviebrock\EloquentSluggable\SluggableTrait;
class Product extends Eloquent {
use SluggableTrait;
protected $sluggable = array(
'build_from' => 'title',
'save_to' => 'slug',
);
}
当然,我可以通过执行以下操作来手动运行sluggify方法:
$product->sluggify();
但是我想坚持最佳实践,并尝试让mpggify代码在触发模型保存事件时自动运行。
答案 0 :(得分:7)
将implements SluggableInterface
添加到您的Product
班级
class Product extends Eloquent implements SluggableInterface
{
}
github上的演示代码:
https://github.com/cviebrock/eloquent-sluggable#updating-your-eloquent-models
答案 1 :(得分:1)
你应该实现SluggableInterface