Laravel - проверка, если поле slug пусто, если оно затем что-то делает автоматически


Laravel - проверка, если поле slug пусто, если оно затем что-то делает автоматически

03.11.2020 11:53:44 Просмотров 8 Источник

Я хочу проверить, ввел ли пользователь какое-либо значение в мое поле slug, так как я хочу дать пользователю возможность сделать это динамически. Если поле пусто, я хочу сгенерировать его автоматически на основе заголовка сообщения. Я уже пробовал что-то подобное:

$title = $request->title;

    if(empty($slug)){
        $slug = Str::slug($title);
    } else {
        $slug = Str::slug($request->slug);
    }

но теперь я не знаю, как им пользоваться. Я пробовал return $slug;, но это не работает:

 Post::create([
            'user_id' => auth()->user()->id,
            'category_id' => $request->category_id,
            'title' => $title,
            'slug' => $slug,

Если кто-то знает другой подход, пожалуйста, помогите :) Спасибо!

Решено Эта часть кода поможет вам, ребята, если вы когда-нибудь столкнетесь с этой "проблемой" :)

$slug = Str::slug($request->input('slug'));

if (empty($slug)) {
    $slug = Str::slug($request->input('title');
}

Post::create([...]);
У вопроса есть решение - Посмотреть?

Ответы - Laravel - проверка, если поле slug пусто, если оно затем что-то делает автоматически / Laravel - Checking if slug field is empty, if it is then to do something automatically

ml59

03.11.2020 12:13:01

Вы можете попробовать что-то вроде этого,

      //validate the data before 
    Validator::make($request->all(), [
        'title' => '',//, check the rules avalaible here https://laravel.com/docs/8.x/validation#available-validation-rules
        'slug' => '',
    ])->validate();//If validation fails, the user will automatically be redirected or, in the case of an AJAX request, a JSON response will be returned:
    //get the slug value or the title if the slug is not present
    $slug = $request->input('slug', $request->input('title'));
    Post::create([
        'user_id' => auth()->user()->id,
        'category_id' => $request->category_id,
        'title' => $title,
        'slug' => $slug,
    ]);

Сердечно

Является ответом!
stokoe0990

03.11.2020 12:15:34

$slug = $request->input('slug');

if (!isset($slug)) {
    $slug = Str::slug($request->input('title'));
}

Post::create([...]);
Помочь в развитии проекта:
Закрыть X