簡體   English   中英

如何路由到laravel控制器方法

[英]How to route to a laravel controllers method

我對laravel4很新,但有一些codeigniter背景。 我試圖弄清楚如何使用url路由到控制器方法

我的網址應該是這樣的

/admin/products{controller_name}/parser{controller_method}

比控制器

<?php namespace App\Controllers\Admin;

use App\Models\Product;
use Image, Input, Notification, Redirect, Sentry, Str;

    class ProductsController extends \BaseController {

        public function index()
        {
            return \View::make('admin.products.index');
        }

            public function parser()
        {
            return \View::make('admin.products.parser');
        }

    }


Route::group(array('prefix' => 'admin', 'before' => 'auth.admin'), function()
{

        Route::resource('products',           'App\Controllers\Admin\ProductsController');
        Route::resource('products/parser',    'App\Controllers\Admin\ProductsController@parser');

});

當您使用Route::resource方法時,實際上您在一次調用中創建了許多不同的路由:

  1. GET / admin /產品
    • 映射到控制器上的index方法
  2. GET / admin / products / create
    • 映射到控制器上的create方法
  3. POST / admin /產品
    • 映射到控制器上的store方法
  4. GET / admin / products / {id}
    • 映射到控制器上的show方法
  5. GET / admin / products / {id} / edit
    • 映射到控制器上的edit方法
  6. PUT / PATCH / admin / products / {id}
    • 映射到控制器上的update方法
  7. DELETE / admin / products / {id}
    • 映射到控制器上的destroy方法

Route::resource('resource', 'Controller')就是你需要做的就是創建7條不同的路由,並且是一種在創建API時非常有用的便捷方法。

所有這一切,我不認為這是你想要做的。 相反,我認為你只想使用常規的get和/或post方法:

// Here is a single GET route
Route::get('products', 'App\Controllers\Admin\ProductsController@index');
// Here is a single POST route
Route::post('products/parser', 'App\Controllers\Admin\ProductsController@parser');

文檔中查看有關Laravel資源控制器的更多信息。

作為旁注,您可以使用Artisan的routes命令查看應用程序當前知道的所有routes

$ php artisan routes

您可以通過運行該命令並查找給定路由映射到的控制器上的哪種方法來驗證路由是否已正確設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM