php - eloquent-sluggable build_from 被忽略了

标签 php laravel

我有一个名为 Vara 的类,其中有一个名为 searchname 的表字段。我想对 cviebrock eloquent sluggable 进行简单设置,但无法弄清楚问题所在。

当我保存我的模型时,没有任何反应,它会重写存储的旧值。

如果我将 build_from 更改为 whatthefuckisgoingon,我会得到相同的输出。我有一个名为 handle 的字段,也尝试将字段名称更改为 slug 但结果相同。如果我将 build_from 留空,我也会得到相同的输出。

但是,如果我将 save_to 更改为不存在的内容,我会收到错误消息。 searchname 字段确实有一个值“Hjordnära test 33 liter”,所以输出真的很奇怪。

我的猜测是 build_from 被忽略了,并被视为 null。我该如何解决这个问题?

我的 Vara.php 看起来像这样

use Cviebrock\EloquentSluggable\SluggableInterface;
use Cviebrock\EloquentSluggable\SluggableTrait;

class Vara extends \Eloquent implements SluggableInterface {

use SluggableTrait;

protected $sluggable = array(
    'build_from' => 'searchname',
    'save_to'    => 'handle'
);

在我的 VarorController.php 中

public function saveVara() 
{

    $id = Input::get('id');

    $vara = Vara::find(Input::get('id'));

    $vara->edited_by = Auth::user()->id;

    $vara->searchname        = Input::get('searchname');
    $vara->save();

    return $vara->getSlug();

好的一点更新,在 SluggableTrait.php 中找到这个函数

public function sluggify($force=false)
    {
        $config = \App::make('config')->get('eloquent-sluggable::config');
        $this->sluggable = array_merge( $config, $this->sluggable );
        if ($force || $this->needsSlugging())
        {
            $source = $this->getSlugSource();
            $slug = $this->generateSlug($source);
            $slug = $this->validateSlug($slug);
            $slug = $this->makeSlugUnique($slug);
            $this->setSlug($slug);
        }
        return $this;
    }

所以如果我添加 $vara->sluggify(true);对于我的 Controller ,slug 正在被保存,所以现在的问题是为什么它不会在 $vara->save();

上自动 sluggify

最佳答案

很可能,这是一个验证问题,因为您使用的是 Ardent :

Ardent is a package that "provides self-validating smart models for Laravel Framework 4's Eloquent ORM"

检查您的规则并使用 if 语句:

if(! $vara->save()) // if model is invalid
    dd($vara->errors());

如果你不需要检查验证,你可以使用

$vara->forceSave();

要将 Eloquent sluggable 与 Ardent 集成,请查看此 link

关于php - eloquent-sluggable build_from 被忽略了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27548026/

相关文章:

php - Bootstrap 按钮输入组无法使用 <form> 标签正确显示

javascript - Laravel-如果我将变量传递给 Controller ​​并保存在数据库中,如何在 javascript 中使用 switch case

php - Eloquent 嵌套 whereHas

php - 在本地托管 Laravel

php - UTF-8贯穿始终

php - 通过 php 按钮将表格导出到 CSV

mysql - Laravel 5 表单信息突然变空

php - 您可以将图像存储在存档系统的文件夹中

javascript - 如何在php函数中以数组形式返回

PHP 页面无法正确呈现