我試圖在this wondefull website的幫助下學習laravel 5。 對於我的活動模型,我希望在將一個節點保存到我的數據庫之前生成slu so,所以我創建了以下模型。Laravel在保存之前生成slu 012
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
class Activity extends Model {
protected $table = 'activitys';
protected $fillable = [
'title',
'text',
'subtitle'
];
// Here I want to auto generate slug based on the title
public function setSlugAttribute(){
$this->attributes['slug'] = str_slug($this->title , "-");
}
//
}
但是當我保存與活動模式塞的幫助對象沒有填充,我試了一下改變被$ this->屬性[「標題」] =「測試」進行測試,但它沒有運行。另外我嘗試添加參數$ title,$ slug到setSlugAttribute(),但它沒有幫助。
我在做什麼錯了,有人可以解釋在setSomeAttribute($ whyParameterHere)的一些例子中使用的參數。
注意:我的數據庫中有一個slug字段。
正如user3158900建議我已經試過:
public function setTitleAttribute($title){
$this->title = $title;
$this->attributes['slug'] = str_slug($this->title , "-");
}
//
這使我的標題字段爲空,但節省了蛞蝓我想要的方式,爲什麼是$這個 - >標題空呢? 如果我刪除$ this-> title = $ title;標題和slu are都是空的
在您的幫助下編輯問題。它由於某種原因使標題空着。如果我刪除$ this-> title = $ title;兩者都是空的。我仍然不明白參數 –
$ this-> title = $ title;應該是$ this-> attributes ['title']現在可以正常工作! –
使用Sluggable庫 –