Страница 404 Laravel не найдена, маршрут существует

Я пытаюсь перейти на свою страницу с подробностями о продукте, но она выдает мне ошибку 404. Путь к подробным сведениям о продукте существует. Я пытаюсь передать информацию о продукте от магазина к деталям продукта.

Мой контроллер:

<?php

namespace App\Http\Controllers;

use DB;
use Illuminate\Http\Request;
use App\Product;

class ProductsController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }

    public function shopindex()
    {
        $productsOTs = DB::select(DB::raw("SELECT * FROM wiz.productimages WHERE Afkorting = 'PPI' LIMIT 83, 3"));
        return view('shop', compact('productsOTs'));
    }

    public function productdetail(Product $Product)
    {   
        return view('Products.productdetail', compact('productsOT'));

    }

}

Ссылка на страницу моего магазина на подробную информацию о продукте:

           @foreach ($productsOTs as $productsOT)
                <div class = "card ot-product" id = "heightwidthfix">
                    <img class = "card-img-top cardstop" src = "{{$productsOT->imagelink}}" alt = "Card image cap" id = "myshopmodal1" height = "400px" width = "300px">
                    <div class = "card-body">
                        <h5 class = "card-title">{{$productsOT->Productomschrijving}}</h5>
                        <p class = "card-text">Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>
                    </div>
                    <div class = "card-body">
                        <a href = "/shop/productdetail/{{ $productsOT->Productcode }}" class = "card-link">Bekijk hier het product</a>
                    </div>
                </div>
            @endforeach

Мои маршруты:

Route::get('/shop', ['middleware' => 'auth', 'uses' => 'ProductsController@shopindex']);
Route::get('/shop/productdetail/{product}', ['middleware' => 'auth', 'uses' => 'ProductsController@productdetail']);

Я уже некоторое время борюсь с этой проблемой, надеюсь, кто-то может мне помочь.

Покажите, пожалуйста, экран ошибки?

Kamal Paliwal 10.12.2018 10:47

Вы уверены, что ваше представление productdetail находится в папке Products? пожалуйста, проверьте внимательно

Nasser Ali Karimi 10.12.2018 10:48

ваш Productcode - столбец уникальных идентификаторов в таблице продуктов?

nakov 10.12.2018 10:53

возвратный вид ('Products.productdetail', компактный ('productsOT')); что здесь productsOT?

kshitij 10.12.2018 10:53

Да, подробный обзор моего продукта находится в папке продуктов

slekniws 10.12.2018 10:55

productsOT - это информация о продукте, которую я хочу передать в подробные сведения о продукте.

slekniws 10.12.2018 10:56

Из вашего примера кода @slekniws 'productsOT' не определен. Это намеренно удалено из фрагмента для краткости?

Oluwatobi Samuel Omisakin 10.12.2018 10:58

Нет, это не намеренно, как это не определяется?

slekniws 10.12.2018 11:00

Productcode - это первичный ключ Procuduct? Это определяется как таковое?

apokryfos 10.12.2018 11:03

Запустите php artisan route:list, чтобы увидеть, есть ли там ваш маршрут. У вас другой маршрут /shop работает? Какую версию Laravel вы используете, они выглядят как маршруты L4

brombeer 10.12.2018 11:32

Я использую Laravel 5.7, / shop работает. Вот мой список маршрутов: \ | | GET|HEAD | shop/productdetail/{product} | | App\Http\Controllers\ProductsController@productdetail

slekniws 10.12.2018 11:44

Это может показаться очевидным, но .. Пробовали ли вы прокладывать трассу /shop снизу? :)

Nikola Petkanski 10.12.2018 12:10

да еще 404

slekniws 10.12.2018 12:13

У меня возникла проблема с .htaccess, посмотрите мой ответ здесь: stackoverflow.com/a/64828062/1938507

Junaed 13.11.2020 22:09
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
7
14
7 936
8

Ответы 8

Пожалуйста, запустите эту рекомендацию

php artisan route:cache

а также

php artisan cache:clear

Это дает мне ошибку: LogicException: невозможно подготовить маршрут [api / user] для сериализации. Использует закрытие.

slekniws 10.12.2018 10:56

@slekniws да, для меня тоже самое. любое решение?

zukijuki 28.06.2019 12:37

пожалуйста, проверьте файл routes/api.php. Laravel добавляет маршрут api аутентификации по умолчанию в указанный выше файл. прокомментируйте этот код в этом файле, и ошибка исчезнет.

Mehran 03.07.2019 07:13

это будет код Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); });

Mehran 03.07.2019 07:14

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

Nico Haase 09.09.2021 15:04

Почему бы тебе не попробовать дать название своему маршруту?

Route::get('/shop/productdetail/{product}', ['middleware' => 'auth', 'uses' => 'ProductsController@productdetail'])->name('show-product');

затем назовите его по имени:

<a href = "{{route('show-product',$productsOT->Productcode) }}" class = "card-link">Bekijk hier het product</a>

Это может решить вашу проблему, иначе проблема не в маршруте.

Пожалуйста, используйте следующий способ

Route::middleware(['auth'])->get('/shop/productdetail/{product}', 'ProductsController@productdetail');

Я обычно предпочитаю сгруппировать промежуточное ПО, чтобы не писать его снова и снова следующим образом:

Route::group(['middleware' => 'auth'], function () {
        /** Dashboard */
        Route::match(['get', 'post'], '/dashboard', 'AdminController@dashboard');
        /**Customer */
        Route::get('/customers', 'AdminController@customerListing');
});

Стил дает мне 404.

slekniws 10.12.2018 12:18

Не могли бы вы добавить изображение 404. Я думаю, что страница просмотра может быть правильной.

Channaveer Hakari 10.12.2018 12:30

Даже есть шанс, что проект тестирования и рабочий проект могут быть неправильными

Channaveer Hakari 10.12.2018 12:32

Мы сделали свою страницу с ошибкой: @extends('layouts.errorLayout') @section('code', '404') @section('title', __('Page Not Found')) @section('homebutton') <a href = "{{ url('/home') }}"> <button class = "bg-transparent text-kuijpers-blue font-bold uppercase tracking-wide py-3 px-6 border-2 border-grey-light hover:border-grey rounded-lg"> {{ __('Go Home') }} </button> </a> @endsection @section('message', __('Sorry, the page you are looking for could not be found.'))

slekniws 10.12.2018 13:25

Я не знаю, как поставить код друг под другом, это не очень понятно ..

slekniws 10.12.2018 13:26

@slekniws в Интернете щелкните правой кнопкой мыши ссылки, например, проверьте как HTML и посмотрите, правильно ли поступает URL, независимо от того, установлен ли идентификатор продукта или нет.

Channaveer Hakari 10.12.2018 15:25

@ Channaveer Hakari Да, загружается, http://127.0.0.1:8000/shop/productdetail/3581635

slekniws 10.12.2018 16:04

Измените эту строку:

<a href = "/shop/productdetail/{{ $productsOT->Productcode }}" class = "card-link">Bekijk hier het product</a>

в

<a href = "{{ url('shop/productdetail/'.$productsOT->Productcode) }}" class = "card-link">Bekijk hier het product</a>

Это небольшая ошибка. Измените это, я надеюсь, что это поможет. Спасибо

Также удалите промежуточное ПО в своем маршруте, потому что вы добавляете промежуточное ПО в конструктор контроллера. И используйте простой маршрут, например Route :: get ('/ shop / productdetail / {product}', 'ProductsController @ productdetail');

Inzamam Idrees 11.12.2018 06:19

Я думаю, что проблема с параметром вашего маршрута, который вы передали, не подходит для прохода

<a href = "/shop/productdetail/{{ $productsOT->relevant_id_colunm_name }}" class = "card-link">Bekijk hier het product</a>

У меня возникла проблема с .htaccess. Я загрузил, но его почему-то не хватает! Я столкнулся с некоторыми другими проблемами, все задокументировано с моим содержимым файла .htaccess здесь: https://stackoverflow.com/a/64828062/1938507

Просто введите на своем терминале

php artisan route: очистить

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

Nico Haase 09.09.2021 15:04

Эй, приятель, первым делом идите к своей команде

  • php artisan route:clear
  • php artisan optimize

но я кое-что нашел, меня беспокоит ваш код.

Я предпочитаю, чтобы у вас было два варианта решения этого вопроса

  • URL('/shop/productdetail/'.{{$id_here}})
  • или добавьте имя маршрутизатора в свои маршруты. ->name('shop_productdetails); затем используйте это в своем лезвии {{route('shop_productdetails',$id)}}

Добро пожаловать, приятель

Другие вопросы по теме