Задать вопрос
mrsexy
@mrsexy
Senior Pomidor

Как при создании поста получить ID и название рубрики?

Здравствуйте! Вопрос по Laravel 7.
Есть пользователь, с возможностью создать собственные уникальные рубрики для публикации в них записей. Не выходит реализовать следующее.

Пользователь переходит в общий список своих рубрик, где у каждой рубрики есть кнопка "Создать запись". Нужно получить ID этой самой рубрики на странице создания поста.

Модели и таблицы связаны между собой(один ко всем), в массиве все эти данные существуют, но, не удаётся присвоить ID конкретной рубрики, внутри которой совершен клик. Соответственно у пользователя всё так же остается выпадающий список его рубрик, вместо одной нужной.

К примеру, если записать в роут кнопки "Создать запись" - route('user.post.create', ['rubric' -> $rubrics->id]),то в URL передаётся ID этой самой рубрики. А вот как получить этот ID внутри формы, не могу найти решения. Подскажите в каком направлении плыть, или может есть простое решение? В гугле ответов не нашел, так как это не совсем стандартный вопрос по laravel, затрудняюсь даже правильно сформулировать.

Контроллер записей
public function create() {
    $users = Auth::user()->id;
    $rubrics = Rubric::where('user_id', '=', $users)->get(); //здесь я получаю список всех рубрик этого юзера.

    return view('user.post.create', compact('rubrics'));
}

Модель записей
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
use Stem\LinguaStemRu;
use Illuminate\Support\Carbon;
use Illuminate\Database\Eloquent\SoftDeletes;
use Iatstuti\Database\Support\CascadeSoftDeletes;

class Post extends Model {

protected $fillable = [
    'category_id',
    'user_id',
    'rubric_id',
    'name',
    'slug',
    'content',
    'image',
];

public function category() {
    return $this->belongsTo(Category::class);
}

public function rubric() {
    return $this->belongsTo(Rubric::class);
}


Вот пример того, что я хочу сделать в изображениях.
Страница списка рубрик:
60894f5b95bb9870671787.png
Страница создания записи:
60894f751f1f8287903909.png
  • Вопрос задан
  • 146 просмотров
Подписаться 1 Простой 5 комментариев
Пригласить эксперта
Ответы на вопрос 1
dlnsk
@dlnsk
ПК Партнер 01.01 -> ПК Поиск -> IBM PC
Каждая кнопка "Создать запись" у вас должна быть внутри отдельной формы, в каждую такую форму вставляйте скрытый input с id рубрики. Это если хотите использовать POST.
Можно, как вы написали, с помощью route('user.post.create', ['rubric' -> $rubrics->id]). Суть та же.
Главное:
В методе контроллера, возвращающем форму, получаете id рубрики и передаете ее скрытым input'ом в саму форму.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы