gpt4 book ai didi

php - eloquent-sluggable build_from 被忽略了

转载 作者:搜寻专家 更新时间:2023-10-31 22:01:53 24 4
gpt4 key购买 nike

我有一个名为 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com