Я пытаюсь перейти на свою страницу с подробностями о продукте, но она выдает мне ошибку 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']);
Я уже некоторое время борюсь с этой проблемой, надеюсь, кто-то может мне помочь.
Вы уверены, что ваше представление productdetail находится в папке Products? пожалуйста, проверьте внимательно
ваш Productcode - столбец уникальных идентификаторов в таблице продуктов?
возвратный вид ('Products.productdetail', компактный ('productsOT')); что здесь productsOT?
Да, подробный обзор моего продукта находится в папке продуктов
productsOT - это информация о продукте, которую я хочу передать в подробные сведения о продукте.
Из вашего примера кода @slekniws 'productsOT' не определен. Это намеренно удалено из фрагмента для краткости?
Нет, это не намеренно, как это не определяется?
Productcode - это первичный ключ Procuduct? Это определяется как таковое?
Запустите php artisan route:list, чтобы увидеть, есть ли там ваш маршрут. У вас другой маршрут /shop работает? Какую версию Laravel вы используете, они выглядят как маршруты L4
Я использую Laravel 5.7, / shop работает. Вот мой список маршрутов: \ | | GET|HEAD | shop/productdetail/{product} | | App\Http\Controllers\ProductsController@productdetail
Это может показаться очевидным, но .. Пробовали ли вы прокладывать трассу /shop снизу? :)
да еще 404
У меня возникла проблема с .htaccess, посмотрите мой ответ здесь: stackoverflow.com/a/64828062/1938507






Пожалуйста, запустите эту рекомендацию
php artisan route:cache
а также
php artisan cache:clear
Это дает мне ошибку: LogicException: невозможно подготовить маршрут [api / user] для сериализации. Использует закрытие.
@slekniws да, для меня тоже самое. любое решение?
пожалуйста, проверьте файл routes/api.php. Laravel добавляет маршрут api аутентификации по умолчанию в указанный выше файл. прокомментируйте этот код в этом файле, и ошибка исчезнет.
это будет код Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); });
Пожалуйста, добавьте пояснение к своему ответу, чтобы другие могли извлечь из него уроки.
Почему бы тебе не попробовать дать название своему маршруту?
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.
Не могли бы вы добавить изображение 404. Я думаю, что страница просмотра может быть правильной.
Даже есть шанс, что проект тестирования и рабочий проект могут быть неправильными
Мы сделали свою страницу с ошибкой: @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 в Интернете щелкните правой кнопкой мыши ссылки, например, проверьте как HTML и посмотрите, правильно ли поступает URL, независимо от того, установлен ли идентификатор продукта или нет.
@ Channaveer Hakari Да, загружается, http://127.0.0.1:8000/shop/productdetail/3581635
Измените эту строку:
<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');
Я думаю, что проблема с параметром вашего маршрута, который вы передали, не подходит для прохода
<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: очистить
Пожалуйста, добавьте пояснение к своему ответу, чтобы другие могли извлечь из него уроки.
Эй, приятель, первым делом идите к своей команде
php artisan route:clearphp artisan optimizeно я кое-что нашел, меня беспокоит ваш код.
Я предпочитаю, чтобы у вас было два варианта решения этого вопроса
URL('/shop/productdetail/'.{{$id_here}})->name('shop_productdetails);
затем используйте это в своем лезвии {{route('shop_productdetails',$id)}}Добро пожаловать, приятель
Покажите, пожалуйста, экран ошибки?