- Posted on
- Comments 0
Laravel 4 Routing Resorce-Controller-Farkı
Merhaba Arkadaşlar ,
Laravel yazı dizilerime routing ile devam ediyorum. Daha önce bir php framework kullandıysanız routing size yabacı olmasa gerek. Benim değinmek istediğim nokta Resource ve Controller routing tasarım farkı ve neden tercih edilmesi hakkında olacak.
Temel routing ile ilgili daha ayrıntılı bilgiyi Laravel sitesinden alabilirsiniz.
Get Routing
-
Route::get('/', function() { return 'Hello World!! Muharrem Tigdemir'; });
Get methodu iki parametre alıyor. URI ve fonksiyon. http://localhost
Routing Parametreler
-
Route::get('test/{id}', function($id) { return 'Test Value : '.$id; });
Post Routing
-
Route::post('post/test', function($id) { return 'Post'. $id; });
Get ile aynı kullanıma sahip post yapısı. http://localhost/post/test
Any Routing
Evet temel Routing öğrendik peki Route:controller ve Route:Resource farkı ne? Bunu anlayabilmek için öncelikle birer route tanımlayarak çıktılarını inceleyelim.
-
Route::controller('test' , 'TestController'); Route::resource('photo', 'PhotoController');
Ben yukarıdaki iki routing’i tanımladım.
-
php artisan route
Konsoldan yukarıdaki komutu yazdığımızda
Yukarıdaki resimden görebileceğiniz gibi Laravel önceden tanımlı(pre-defined) fonksiyonları arıyor ve bazılarını missing olarak gösteriyor.
Resource Methodları
- index
- create
- store
- show
- edit
- update
- destroy
Controller Methodları
- getIndex
- postSecond
Gerçekten lafı biraz uzattım sonuç olarak..
Controller Routing
Eğer standartlara uygun Routing yapmak istiyorsanız Controller seçiminiz olmalı. Yeni bir method tanımlarken dikkat etmeniz gereken. Get method için fonksyionun ismi get ile başlamalı ve devam eden ilk harf büyük olmalı. Post method için fonksyion post ile başlamalı ve devam eden ilk harf büyük olmalı. Örnek Routing ve sonucu..
-
class TestController extends BaseController { public function getIndex() { // URL /test echo "Index Sayfası"; } public function getMy() { // URL /test/my echo "My fonksyionu"; } public function getMylist() { // URL /test/mylist echo "My List fonksyionu"; } public function postProfile() { // URL /test/profile NOT : POST echo "Post Method"; } }
-
Route::controller('test' , 'TestController');
Resource Routing
Eğer CRUD işlemleri yapacağınız bir senaryo var ise seçiminiz Resource Routing olmalı.
-
Route::resource('photo', 'PhotoController');
Muharrem Tığdemir