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学习》系列分享专栏

php [Laravel - 自定义错误消息] Laravel 5.4其他登录条件 - 添加自定义错误消息。 #All #Script #Laravel #Php

Aws-sdk-php-laravel 在 laravel 5.2 中得到 500 错误

快速入门最流行的 PHP 开发框架 Laravel

PHP Laravel Install and Quickstart