@Sinnbeck Hi, thanks for the response.
I have changed my model to the following
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Cviebrock\EloquentSluggable\Sluggable;
use Illuminate\Support\Str;
class Post extends Model
{
use HasFactory, Sluggable;
protected $fillable = [
'title',
'slug',
'excerpt',
'body',
'published_at',
];
public function sluggable(): array
{
return [
'slug' => [
'source' => 'title'
]
];
}
protected function excerpt(): Attribute
{
return Attribute::make(
'body',
fn () => Str::limit($this->body, 100)
);
}
}
However when running the following code on tinker I get the following errors
> Post::create(['title' => 'My Fourth Post', 'body' => 'sfgdsgdfgdg fdgdfggs gdfsg fdsg dfsg sdfgfdg dfg dfg dfgdf gdf g dsfg dfg dfg dfsg fgh rthrt hr efgew few freg erg eqrg we fwr g qreg ewf rweef wef wef wef ew f ewf wef weq fwe f wef ew fwe fewf ewf ewf ew f ewf wef ewf we f wef ewrtghtgr erf qerwgt ghtr greg gq erge e qgr eger qgr gq rg reg erg erg reg r gr egre gre ggre gre g reg regregerg reg regqergrtehgtyhrg regrthrt']);
[!] Aliasing 'Post' to 'App\Models\Post' for this Tinker session.
Illuminate\Database\QueryException SQLSTATE[HY000]: General error: 1364 Field 'excerpt' doesn't have a default value (SQL: insert into `posts` (`title`, `body`, `slug`, `updated_at`, `created_at`) values (My Fourth Post, sfgdsgdfgdg fdgdfggs gdfsg fdsg dfsg sdfgfdg dfg dfg dfgdf gdf g dsfg dfg dfg dfsg fgh rthrt hr efgew few freg erg eqrg we fwr g qreg ewf rweef wef wef wef ew f ewf wef weq fwe f wef ew fwe f ewf ewf ewf ew f ewf wef ewf we f wef ewrtghtgr erf qerwgt ghtr greg gq erge e qgr eger qgr gq rg reg erg erg reg r gr egre gre ggre gre g reg regregerg reg regqergrtehgtyhrg regrthrt, my-fourth-post, 2023-01-21 09:25:57, 2023-01-21 09:25:57)).
So it seems it still isn't taking the body and returning an excerpt to the model, I have read through on the accessors & mutators but this is the first to I have run into them so I am unfamiliar.
I want it to automatically add the trimmed down excerpt into the db in tinker like the slug is doing.