所以我刚刚发现了包laravel-sluggable,我正在尝试设置translatable slugs。我得到了一个错误与路由模型绑定,错误404。所以我创建了一个简单的迁移,简单的模型和简单的路由,但同样的错误发生。我的数据库支持json。
我的迁移:
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->json('name');
$table->json('slug');
$table->timestamps();
});
}
我的模型:
<?php
namespace App\Models;
use Spatie\Sluggable\SlugOptions;
use Illuminate\Database\Eloquent\Model;
use Spatie\Translatable\HasTranslations;
use Spatie\Sluggable\HasTranslatableSlug;
class Post extends Model
{
use HasTranslations, HasTranslatableSlug;
public $translatable = ['name', 'slug'];
/**
* Get the options for generating the slug.
*/
public function getSlugOptions() : SlugOptions
{
return SlugOptions::create()
->generateSlugsFrom('name')
->saveSlugsTo('slug');
}
/**
* Get the route key for the model.
*
* @return string
*/
public function getRouteKeyName()
{
return 'slug';
}
}
Artisan tinker向我显示我创建的帖子已经添加,它看起来像这样:
+"name": "{"nl": "test"}",
+"slug": "{"nl": "test"}",
我的区域设置目前确实是nl
,但浏览到以下路径时出现404错误:
use App\Models\Post;
Route::get('posts/{post}', function (Post $post) {
dd($post);
});
我的问题是,我在这里错过了什么?这个软件包的普通鼻涕虫工作起来就像一个魅力。而且,可翻译的软件包工作起来就像一个魅力。这只是翻译的鼻涕虫我现在有一个问题。
1条答案
按热度按时间bihw5rsg1#
与一个新的Laravel 9安装,它的工作就像一个魅力,因此我已经升级了我的Laravel 8到Laravel 9,它现在正在工作。