2016-10-19 9 views
0

Ich bin neu bei Laravel und versuche immer noch, mich mit der Syntax vertraut zu machen, seit ich ursprünglich in Java programmiert habe.Laravel 5.3 Array auf Routen

Ich stieß auf diese Syntax in einem der Tutorials, die ich gerade sehe.

Route::get('/', [ 
    'uses'=>'[email protected]', 
    'as' => 'product.index' 
]); 

Ich verstehe, dass die ProductController die Controller-Klasse ist, @getIndex die Methode ist (wenn man so will) in der ProductController Klasse wohnen.

Was sind uses, as und product.index? Ich sehe, dass sie Paare von Schlüsseln und Werten sind.

Kann ich die uses und as auf den von mir gewünschten Namen ändern?

Ich sehe product.index nirgendwo im Ordner. Zuerst dachte ich, es wäre eine Aussicht.

Dies sind die Dateien.

web.php

Route::get('/', [ 
    'uses'=>'[email protected]', 
    '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']; 
} 

Plea Ich erkläre es.

Ich würde mich über jede nützliche Erklärung dafür freuen.

Vielen Dank.

Antwort

1

Was Sie gesagt haben, ist richtig. Die Route verwendet den ProductController und fragt nach der getIndex() -Methode. Ja, Sie können die Routen wie gewünscht benennen und auch Ihre Methoden.

Als Aliasname ist 'as' der Routenname, siehe here (Named Routes).

'product.index' 

ist der Name der Route.

So könnten Sie tun ...

Route::get('/', '[email protected]')->name('product.index'); 

Dies würde dann können Sie diese Route verwenden, um etwa eine Umleitung.

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

Es ist völlig optional, eine Route zu benennen.

Hoffe, dass hilft!

+0

Ich vermute Route :: get ('/', 'ProductController @ getIndex') -> name ('product.index'); ist viel einfacher im Vergleich zu dem, was ich habe. Ist es eine gute Vorgehensweise, eine Route zu benennen und die globale Methode route() zu verwenden, falls notwendig? – p3ace

+0

Yup, viel einfacher - der andere Weg war in der Dokumentation zuvor, Verkettung der Route Name wurde in Laravel 5 eingeführt. Ich würde sagen, es ist eine gute Übung, wenn Sie umleiten müssen - es ist genauer zu wählen Sie Ihre Route zu umleiten. – Sledmore

+0

Danke. Das war hilfreich, ich habe die Details zu dem von Ihnen angegebenen Link gelesen. Ich schätze es. – p3ace