路线上的Laravel 5.3阵列

时间:2016-10-19 10:26:56

标签: php laravel-5.2 laravel-routing

我是Laravel的新手,并且自从我最初用Java编程以来,仍然试图让自己熟悉它的语法。

我在其中一个正在观看的教程中遇到了这种语法。

Route::get('/', [
    'uses'=>'ProductController@getIndex',
    'as' => 'product.index'
]);

我理解ProductController是控制器类,@getIndex是驻留在ProductController类中的方法(如果愿意)。

什么是usesasproduct.index我看到它们是键和值对。

我可以将usesas修改为我想要的名称吗?

我在文件夹中的任何位置都看不到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'];
}

请解释一下。

我很感激对此有任何有用的解释。

谢谢。

1 个答案:

答案 0 :(得分:1)

你说的是对的。该路由正在使用ProductController并要求getIndex()方法。是的,你可以自由地命名你想要的路线,以及你的方法。

作为别名,'as'是路线名称,请参阅here (Named Routes)

'product.index'

是路线名称。

所以你可以......

Route::get('/', 'ProductController@getIndex')->name('product.index');

然后,这将允许您使用此路由来表示重定向。

return redirect()->route('product.index');

命名路线完全是可选的。

希望有所帮助!