Laravel spatie可平移和可插入(可平移插入)

6rqinv9w  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(148)

所以我刚刚发现了包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);
});

我的问题是,我在这里错过了什么?这个软件包的普通鼻涕虫工作起来就像一个魅力。而且,可翻译的软件包工作起来就像一个魅力。这只是翻译的鼻涕虫我现在有一个问题。

bihw5rsg

bihw5rsg1#

与一个新的Laravel 9安装,它的工作就像一个魅力,因此我已经升级了我的Laravel 8到Laravel 9,它现在正在工作。

相关问题