Laravel不根据数据库ID导航到url

时间:2017-10-30 03:52:21

标签: php laravel

我正在尝试使用laravel导航到产品页面。 URL获取一个id,该id是从用于显示产品的数据库ID中获取的。

产品控制器文件:

public function index()
{
    $products = Product::all();
    return view('products.index')->with('products',$products);
} 

   public function show($id)
    {
        $product = Product::find($id);
        return view('products.show')->with('product',$product);
    }

错误:

The requested URL /products/1 was not found on this server.

这是我要求的路线:

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('HomePage');
});

Route::get('/about', function () {
    return view('pages.about');
});


   /*
     * Login
     */
    Route::get('/login', [
        'as'   => 'login',
        'uses' => 'UserLoginController@showLogin',
    ]);
    Route::post('/login', 'UserLoginController@postLogin');

Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');



Route::resource('products','productcontroller');

3 个答案:

答案 0 :(得分:1)

编辑:您的控制器类是否正确命名?我认为问题在那里。是的,您可以使用资源路由进行restful请求响应,但路由找不到您的控制器类。正确命名。 ProductsController什么的。再检查一遍。

你可以粘贴你的路线吗?可能存在问题。不在您的控制器中。检查文档,如果你无法弄清楚粘贴在这里。

答案 1 :(得分:1)

您没有此类/products/1之类的路由,因此需要添加该路由并分配您需要的控制器和操作。例如

Route::get('/product/{id}', 'ProductController@show')

答案 2 :(得分:0)

href标记错误,需要与localhost中的内容完全相同,例如本地主机/ 8888 /公共