Intereting Posts
Заголовки WordPress: если длиннее 50 символов, покажите эллипсис PHP PDO Подключение к базе данных Advantage Database SQL Server Остановите скрипт (без фатальной ошибки) после определенного количества времени запроса / разбора PHP: загрузите любой файл с ftp-сервера в harddrive? Codeigniter не может удалять строки из таблицы базы данных, используя метод join «Ошибка SMTP: не удалось аутентифицировать» в PHPMailer Ошибка SQL с использованием CTE Как создать таблицу столбцов php 2 со значениями из базы данных? Создание динамического PHP-кода на основе типов данных столбцов MySQL Выполнить инструкцию для всех строк xml? Использование jQuery ajax для загрузки файлов и данных формы с помощью formData () Группы регулярных выражений PHP фиксируют в ATK4 Могу ли я определить другой шаблон от frontend до back end? Изменение размера / обрезка / наложение изображения на фиксированный размер Уменьшение использования памяти для массива и SplFixedArray

Laravel 5.4 Внутренняя ошибка: не удалось получить значение по умолчанию

У меня есть форма, которая передает данные в базу данных. И он отправляет данные в базу данных. Но Laravel дает ошибку, когда пытается перенаправить ее на другой метод в том же контроллере.

ReflectionException in RouteDependencyResolverTrait.php line 57: Internal error: Failed to retrieve the default value 

введите описание изображения здесь

Вот контроллер, который я использую. Пожалуйста, проверьте способ public function store(Request $request) .

 <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Inbox; class ContactUsController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { // } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { return view('pages.contactus'); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // validate the data // store the data in the database // redirect to another page $this->validate($request, [ 'name' => 'required|max:255', 'email' => 'required', 'telephone' => 'required', 'message' => 'required', ]); $inbox = new Inbox; $inbox->name = $request->name; $inbox->email = $request->email; $inbox->telephone = $request->telephone; $inbox->message = $request->message; $inbox->isnew = 1; $inbox->category = $request->category; $inbox->save(); // redirects to the route //return redirect()->route('contactus.show', $inbox->id); return redirect()->action( 'ContactUsController@show', ['id' => 11] ); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { print_r($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) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } } 

И я попытался использовать оба метода в двух разных случаях. Но Laravel показывает ту же ошибку каждый раз.

 return redirect()->route('contactus.show', $inbox->id); return redirect()->action( 'ContactUsController@show', ['id' => 11] ); 

И вот файл маршрута web.php .

 Route::get('contactus', 'ContactUsController@create'); Route::get('contactus/show', 'ContactUsController@show'); Route::post('contactus/store', 'ContactUsController@store'); 

Я понятия не имею, из-за этой проблемы. Любое предложение будет полезно.

Благодаря!

Вы передаете значение id маршрутизатору при переадресации, но вы не указываете маршрутизатору использовать это значение в маршруте. Поэтому маршрутизатор не знает, чтобы передать значение id в метод show .

Измените маршрут таким образом:

 Route::get('contactus/{id}', 'ContactUsController@show'); 

Тогда ваше перенаправление должно работать, и вам следует перенаправить его (используя идентификатор из вашего примера) /contactus/11 .

У вас нет $id определенного на маршруте. Вы можете добавить это к маршруту с помощью:

 Route::get('contactus/show/{id}', 'ContactUsController@show'); 

ИЛИ

Вы можете передать его как параметр get и получить его в запросе:

 public function show(Request $request) { print_r($request->input('id')); } 

У меня была такая же ошибка, и это было потому, что там был параметр $request вместо Request $request