Im пытается узнать laravel 5 с помощью this wondefull website. Для моей модели деятельности я хочу сгенерировать пули, прежде чем сохранять ее в моей базе данных, поэтому я создал следующую модель.Laravel генерировать слизь перед сохранением
<?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).
Примечание: в моей базе данных есть пустое поле.
Как было предложено user3158900 я попытался:
public function setTitleAttribute($title){
$this->title = $title;
$this->attributes['slug'] = str_slug($this->title , "-");
}
//
Это делает мое название поле пустым, но спасает слизняк, как я хочу его, почему $ this-> название пустого тогда? Если я удалю $ this-> title = $ title; оба названия и пули пустые
отредактируйте этот вопрос с вашей помощью. по какой-то причине он оставляет название пустым. если я удалю $ this-> title = $ title; оба пустые. Я все еще не понимаю параметр, но –
$ this-> title = $ title; должен быть $ this-> attributes ['title'] теперь работает отлично! –
Использование библиотеки Sluggable –