PHP Laravel cviebrock/eloquent-sluggable 不起作用,因为“instanceof SluggableInterface”总是返回 false
Posted
技术标签:
【中文标题】PHP Laravel cviebrock/eloquent-sluggable 不起作用,因为“instanceof SluggableInterface”总是返回 false【英文标题】:PHP Laravel cviebrock/eloquent-sluggable not working because "instanceof SluggableInterface" always returns false 【发布时间】:2014-06-18 17:23:42 【问题描述】:我正在尝试使用 Laravel 的 sluggable 包,在这里可以找到:https://github.com/cviebrock/eloquent-sluggable
当我保存模型(例如产品)时,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();
但我想遵循最佳实践,并尝试在触发模型保存事件时让 sluggify 代码自动工作。
【问题讨论】:
【参考方案1】:将implements SluggableInterface
添加到您的Product
课程中
class Product extends Eloquent implements SluggableInterface
github上的演示代码:
https://github.com/cviebrock/eloquent-sluggable#updating-your-eloquent-models
【讨论】:
谢谢!我觉得自己像个白痴……我真的很累。【参考方案2】:你应该实现 SluggableInterface
【讨论】:
以上是关于PHP Laravel cviebrock/eloquent-sluggable 不起作用,因为“instanceof SluggableInterface”总是返回 false的主要内容,如果未能解决你的问题,请参考以下文章
PHP笔记-laravel环境搭建(Laravel5.8.35版本)
php [Laravel - 自定义错误消息] Laravel 5.4其他登录条件 - 添加自定义错误消息。 #All #Script #Laravel #Php