Правильное использование Ressource Controller в Laravel - PullRequest
0 голосов
/ 02 октября 2018

Я использую Laravel Ressource Controller, но я не уверен, правильно ли я его использую.Я начинаю с простого просмотра, который я помещаю в функцию создания.В этом представлении я записываю имя в текстовое поле и нажимаю кнопку отправки, которая запускает индекс функции.Функция индекса по умолчанию - только index () Я изменил ее на index (Request $ request) из-за пост-запроса.Но я не верю, что индекс является правильной функцией для этой потребности.Вот полный контроллер.

public function index(Request $request)
{
    $username = $request->username;
    $user = User::where('name', $username)->select('id', 'name')->first();

    return view('invitation.username')->with('user', $user);
}

/**
 * Show the form for creating a new resource.
 *
 * @return \Illuminate\Http\Response
 */
public function create()
{
    return view('invitation.username');
}

/**
 * Store a newly created resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function store(Request $request)
{
    //
}

/**
 * Display the specified resource.
 *
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
public function show($id)
{
    //
}

/**
 * Show the form for editing the specified resource.
 *
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
public function edit($id)
{
    //
}

/**
 * Update the specified resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
public function update(Request $request, $id)
{
    //
}

Где поставить код?Какова правильная функция для моих нужд?Или я должен создать новую функцию?

1 Ответ

0 голосов
/ 02 октября 2018

Контроллеры ресурсов могут быть не лучшими для этого шаблона.

  • Индекс - показать список ресурсов для модели, связанной с контроллером
  • Создать - показать форму длясоздание модели
  • Store - принять запрос POST от формы Create
  • Show - показать отдельный ресурс
  • Edit - показать форму для редактирования модели
  • Обновить - примите запрос PUT из формы редактирования для обновления модели.

В вашем случае, я думаю, что более подходящей номенклатурой функции будет:

public function search()
{
    return view('invitation.search');
}

Затем, чтобы отобразить эти результаты:

public function results()
{
    return view('invitation.results')
        ->with('user', User::where('name', request()->input('username'))->first());
}

Хотя это может быть объяснено и экстраполировано далее, чтобы добавить поддержку для поиска дополнительного поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...