我对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');
});
答案 0 :(得分:3)
当您使用Route::resource
方法时,您实际上只在一次通话中创建了许多不同的路线:
index
方法create
方法store
方法show
方法edit
方法update
方法destroy
方法为了创建 7个不同的路由,您需要做Route::resource('resource', 'Controller')
,这是一种在创建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');
在docs中查看有关Laravel资源控制器的更多信息。
作为旁注,您可以使用Artisan的routes
命令查看应用程序当前知道的所有路径:
$ php artisan routes
您可以通过运行该命令并查找给定路由映射到的控制器上的哪种方法来验证路由是否已正确设置。