بهترین زمان یادگیری بیشتر، برای شروع یک رقابت دلچسب! مهارتتو ارتقا بده...

تابستون کوتاهه! کلیک کن!
ثانیه
دقیقه
ساعت
روز
ستایش
9 ماه پیش توسط ستایش مطرح شد
4 پاسخ

مشکل در ایجاد اسلاگ

سلام خسته نباشین دوستان
من پکیج Eloquent-Sluggable نصب کردم اما پس ایجاد فرم خطا زیر دریافت میکنم

Illuminate\Database\QueryException
SQLSTATE[HY000] [1049] Unknown database 'laravel' (SQL: insert into `articles` (`title`, `body`, `updated_at`, `created_at`) values (سلام دنیا, سلام دنیا, 2023-12-16 23:47:51, 2023-12-16 23:47:51)) 

مدل :

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Article extends Model
{
    protected $fillable = [
        'title', 'slug', 'body',
    ];
    public function sluggable(): array
    {
        return [
            'slug' => [
                'source' => 'title'
            ]
        ];
    }
}

کنترولر

    public function store(ArticleRequest $request)
    {
        $validate_data = $request->validated();
        Article::create([
            'title' => $validate_data['title'],
            'body' => $validate_data['body'],
        ]);
        return back();
    }

ثبت پرسش جدید
رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 9 ماه پیش مطرح شد
0

سلام.
مدل رو به صورت زیر بنویسید:

<?php

namespace App;

use Cviebrock\EloquentSluggable\Sluggable;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Article extends Model
{
    use HasFactory;
    use Sluggable;

    protected $fillable = [
        'title', 'slug', 'body',
    ];
    public function sluggable(): array
    {
        return [
            'slug' => [
                'source' => 'title'
            ]
        ];
    }
}

وارد مسیر زیر بشین:

\config\sluggable.php

و مقدار زیر رو قرار بدین

 'method' => function($string, $separator = '-')
    {
        $_transliteration = array(
            '/ä|æ|ǽ/' => 'ae',
            '/ö|œ/' => 'oe',
            '/ü/' => 'ue',
            '/Ä/' => 'Ae',
            '/Ü/' => 'Ue',
            '/Ö/' => 'Oe',
            '/À|Á|Â|Ã|Å|Ǻ|Ā|Ă|Ą|Ǎ/' => 'A',
            '/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª/' => 'a',
            '/Ç|Ć|Ĉ|Ċ|Č/' => 'C',
            '/ç|ć|ĉ|ċ|č/' => 'c',
            '/Ð|Ď|Đ/' => 'D',
            '/ð|ď|đ/' => 'd',
            '/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě/' => 'E',
            '/è|é|ê|ë|ē|ĕ|ė|ę|ě/' => 'e',
            '/Ĝ|Ğ|Ġ|Ģ/' => 'G',
            '/ĝ|ğ|ġ|ģ/' => 'g',
            '/Ĥ|Ħ/' => 'H',
            '/ĥ|ħ/' => 'h',
            '/Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ/' => 'I',
            '/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı/' => 'i',
            '/Ĵ/' => 'J',
            '/ĵ/' => 'j',
            '/Ķ/' => 'K',
            '/ķ/' => 'k',
            '/Ĺ|Ļ|Ľ|Ŀ|Ł/' => 'L',
            '/ĺ|ļ|ľ|ŀ|ł/' => 'l',
            '/Ñ|Ń|Ņ|Ň/' => 'N',
            '/ñ|ń|ņ|ň|ʼn/' => 'n',
            '/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ/' => 'O',
            '/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º/' => 'o',
            '/Ŕ|Ŗ|Ř/' => 'R',
            '/ŕ|ŗ|ř/' => 'r',
            '/Ś|Ŝ|Ş|Ș|Š/' => 'S',
            '/ś|ŝ|ş|ș|š|ſ/' => 's',
            '/Ţ|Ț|Ť|Ŧ/' => 'T',
            '/ţ|ț|ť|ŧ/' => 't',
            '/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ/' => 'U',
            '/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ/' => 'u',
            '/Ý|Ÿ|Ŷ/' => 'Y',
            '/ý|ÿ|ŷ/' => 'y',
            '/Ŵ/' => 'W',
            '/ŵ/' => 'w',
            '/Ź|Ż|Ž/' => 'Z',
            '/ź|ż|ž/' => 'z',
            '/Æ|Ǽ/' => 'AE',
            '/ß/' => 'ss',
            '/IJ/' => 'IJ',
            '/ij/' => 'ij',
            '/Œ/' => 'OE',
            '/ƒ/' => 'f'
        );

        $quotedReplacement = preg_quote($separator, '/');

        $merge = array(
            '/[^\s\p{Zs}\p{Ll}\p{Lm}\p{Lo}\p{Lt}\p{Lu}\p{Nd}]/mu' => ' ',
            '/[\s\p{Zs}]+/mu' => $separator,
            sprintf('/^[%s]+|[%s]+$/', $quotedReplacement, $quotedReplacement) => '',
        );

        $map = $_transliteration + $merge;
        unset($_transliteration);

        return mb_strtolower(preg_replace(array_keys($map), array_values($map), $string));
    },

کد کنترلر هم به صورت زیر بنویسین (clean code):

public function store(ArticleRequest $request)
    {
        $validate_data = $request->validated();
        Article::create($vallidate_data);
        return back();
    }

موفق باشید


ستایش
تخصص : لاراول
@Setayeshho 9 ماه پیش مطرح شد
0

سلام ممنون بابت راهنماییت اما باز همون خطا داد
@rezajahangir


رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 9 ماه پیش مطرح شد
0

ارور داره میگه دیتابیس laravel وجود نداره


رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 9 ماه پیش مطرح شد
0

درود خوبی...
دستورهای زیر وارد کنید:

php artisan config:cache
php artisan:migrate

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام