#php #laravel #redirect #laravel-8 #inertiajs
Вопрос:
Я использую Laravel 8 с инерцией и реагирую. Я пытаюсь перенаправить на URL-адрес с хэшем в конце URL-адреса, и по какой-то причине, независимо от того, как я создаю URL-адрес, Laravel удаляет фрагмент в конце. Даже когда я явно использую withFragment
, это не работает. Вот мой контроллер:
/** * Handle request to store a new answer */ public function store(Request $request) { $userId = Auth::id(); $question = Question::find($request-gt;input('question')['id']); $questionAuthor = User::find($question-gt;user_id); $answer = $request-gt;input('answer'); $newAnswer = new Answer; $newAnswer-gt;body = $answer['body']; $newAnswer-gt;user_id = $userId; $newAnswer-gt;question_id = $question-gt;id; $newAnswer-gt;save(); Mail::to($questionAuthor)-gt;send(new NewAnswer( $questionAuthor, $newAnswer, $question )); $url = url("/questions/{$question-gt;slug}"); return redirect($url)-gt;withFragment($newAnswer-gt;id); }
Если бы кто-нибудь мог помочь мне понять, почему хэш удаляется с конца и как я мог бы это исправить, я был бы очень благодарен. Спасибо.
Комментарии:
1. Попробовать
redirect()-gt;to($url)-gt;withFragment($newAnswer-gt;id)
? Вот как я обычно это делаю. Хотя на самом деле вам не следует жестко кодировать URL-адреса, а вместо этого использовать имена маршрутов. В идеале ваш код должен больше походить наredirect()-gt;route("question", $question)-gt;withFragment($newAnswer-gt;id);
2. Спасибо @miken32, я собираюсь попробовать ваше предложение. Я дам тебе знать, если это сработает
3. К сожалению, это не сработало. Хэш все еще снимается с конца. Совершенно сбит с толку и расстроен
4. Я предполагаю, что вы выполнили отладку, чтобы подтвердить, что передаете допустимые значения? И еще одно предложение. Вы должны использовать привязку модели маршрута везде, где можете, чтобы позволить Laravel выполнять поиск моделей и обрабатывать случаи, когда модели не найдены. Что происходит в вашем методе выше, если
$question
значение равно null, потому что соответствующая запись не была найдена?5. ДА. И не имеет значения, что я выдаю за фрагмент, будь то динамически сгенерированный или жестко закодированный. Просто раздевается. Это немного отдельная проблема. Этот проект все еще далек от завершения. Придет правильная обработка ошибок