我是Laravel的新手,并且自从我最初用Java编程以来,仍然试图让自己熟悉它的语法。
我在其中一个正在观看的教程中遇到了这种语法。
Route::get('/', [
'uses'=>'ProductController@getIndex',
'as' => 'product.index'
]);
我理解ProductController
是控制器类,@getIndex
是驻留在ProductController
类中的方法(如果愿意)。
什么是uses
,as
和product.index
?我看到它们是键和值对。
我可以将uses
和as
修改为我想要的名称吗?
我在文件夹中的任何位置都看不到product.index
。起初我认为这是一种观点。
这些是文件。
web.php
Route::get('/', [
'uses'=>'ProductController@getIndex',
'as' => 'product.index'
]);
ProductController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
class ProductController extends Controller
{
public function getIndex(){
return view('shop.index');
}
}
Product.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
protected $fillable = ['imagePath','title','description','price'];
}
请解释一下。
我很感激对此有任何有用的解释。
谢谢。
答案 0 :(得分:1)
你说的是对的。该路由正在使用ProductController并要求getIndex()方法。是的,你可以自由地命名你想要的路线,以及你的方法。
作为别名,'as'是路线名称,请参阅here (Named Routes)。
'product.index'
是路线名称。
所以你可以......
Route::get('/', 'ProductController@getIndex')->name('product.index');
然后,这将允许您使用此路由来表示重定向。
return redirect()->route('product.index');
命名路线完全是可选的。
希望有所帮助!