Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Slug is not updating (translatable slug) #235

Unanswered
kskrlinnorth2 asked this question in Q&A
Discussion options

Package v3.4.0
Laravel v9

Model slug definition:

use HasTranslations, HasTranslatableSlug;
public $translatable = [
 'name',
 'slug',
];
return SlugOptions::create()
 ->generateSlugsFrom(['name', 'starts_at_iso'])
 ->saveSlugsTo('slug');

It works only on create and it can't be updated with none of provided solutions:
$event->update(['name' => 'New name']); // Not working, slug is not updated

$event->name = 'foo'; // Not working
$event->save();
// Not working, slugs are still the old ones
$event->name = [
 'en' => 'New name EN',
 'hr' => 'New name HR',
];
$event->save();
$event->generateSlug(); // Not working
$event->save();

Slug update only works if I directly update the slug, but for this kind of code I don't even need any package.

$event->slug = 'foo'; // Only this works
$event->save();
You must be logged in to vote

Replies: 3 comments 2 replies

Comment options

The tests prove that this package is working as intended. Could you check the tests? If there's something not working, PR a failing test for us to fix.

You must be logged in to vote
2 replies
Comment options

I didn't make PR, but I realized it doesn't only update when I generate slug from multiple parameters.

generateSlugsFrom(['name']) // Works on update
generateSlugsFrom(['name', 'starts_at_iso']) // starts_at_iso is accessor, slug stays same on update
generateSlugsFrom(['name', 'country_code']) // country_code is column in DB, slug stays same on update

This is my method for slug generation:

public function getSlugOptions(): SlugOptions
{
 return SlugOptions::create()
 ->generateSlugsFrom(['name', 'starts_at_iso'])
 ->saveSlugsTo('slug');
}
Comment options

same thing happening with my code

Comment options

Same problem

You must be logged in to vote
0 replies
Comment options

Same here. Here's a test that triggers the problem. I don't know whether it's intended behaviour or not but setting the slug manually once blocks subsequent automatic updates:

it('can update slugs', function () {
 app()->setLocale('en');
 $model1 = new TranslatableModel();
 $model1->name = "Test Value";
 $model1->save();
 expect($model1->slug)->toBe('test-value');
 app()->setLocale('de');
 $model1->name = "Test Wert";
 $model1->save();
 expect($model1->slug)->toBe('test-wert');
 app()->setLocale('en');
 $model1->slug = "another-test-value";
 $model1->save();
 $model1->name = "New Test Value";
 $model1->save();
 expect($model1->slug)->toBe('new-test-value');
});
You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
Converted from issue

This discussion was converted from issue #234 on July 13, 2022 20:46.

AltStyle によって変換されたページ (->オリジナル) /