Giriş yapmadınız.

#1 14.03.2015 23:41:31

radiva
Üye
Kayıtlı: 26.02.2015
Mesajlar: 33

Route::put ve Route::any

Merhaba,

Route::put ve Route::any tam olarak ne işe yarıyor?

örneğin aşağıdaki iki route arasındaki fark nedir?

Route::any('foo', function()
{
    return 'Hello World';
});

Route::get('foo', function()
{
    return 'Hello World';
});

Çevrimdışı

#2 15.03.2015 00:14:23

serturk
Üye
Kayıtlı: 31.05.2013
Mesajlar: 107

Yanıt: Route::put ve Route::any

Route::get('foo', function() {
    return 'Hello World';
});

bu rota sadece get metoduna yanıt verir, adres/foo adresine post ile yapacağın request dikkate alınmaz.

Route::any('foo', function() {
    return 'Hello World';
});

ise get, post, put hepsine karşılık verir, any kullandığında method u kendin kontrol edersin.

Route::any('foo', function() {
if (\Request::isMethod('post')) {
    return "post request";
} else if (\Request::isMethod('get')) {
    return "get request";
}
});

şeklinde....

Route::get('foo',....) sadece get metodu için
Route::post('foo',....) sadece post metodu için
Route::put('foo',....) sadece put metodu için
Route::delete('foo',....) sadece delete talebi için
Route::any('foo',....) bu taleplerin hepsi için.

Çevrimdışı

#3 15.03.2015 21:07:01

radiva
Üye
Kayıtlı: 26.02.2015
Mesajlar: 33

Yanıt: Route::put ve Route::any

cevap için teşekkürler, get, post ve any tamam. put ve delete ne anlama geliyor, nasıl kullanılıyor?

Çevrimdışı

#4 15.03.2015 23:56:12

serturk
Üye
Kayıtlı: 31.05.2013
Mesajlar: 107

Yanıt: Route::put ve Route::any

resource kontroller kullandığında güncelleme için PUT, silmek için DELETE metodu ile rota belirleniyor.

Route::resource('user', 'UserController'); //şeklinde rota tanımlarsan

Laravel senin yerine bu rotaları tanımlar (bi kaç hata olabilir, üstteki tanımlamayı yaptıktan sonra php artisan route:list komutu ile bütün rotalarını görebilirsin.)
Route::get('user',['as' => 'user.index', 'uses' => '[email protected]']);
Route::get('user/create',['as' => 'user.create', 'uses' => '[email protected]']);
Route::post('user',['as' => 'user.store', 'uses' => '[email protected]']);
Route::get('user/{user}',['as' => 'user.show', 'uses' => '[email protected]']);
Route::get('user/{user}/edit ',['as' => 'user.edit', 'uses' => '[email protected]']);
Route::put('user/{user} ',['as' => 'user.update', 'uses' => '[email protected]']);
Route::delete('user/{user} ',['as' => 'user.destroy', 'uses' => '[email protected]']);

create formu için action bölümünü

<form action="{!! route('user.store') !!}">

bu rotayla kullanıyorsun
update formu için

<form action="{!! route('user.update') !!}">
<input name="_method" type="hidden" value="PUT">

diyorsun ve forma bu gizli alanını ekliyorsun. Laravel bunu Route::put rotasına yönlendiriyor.
silme işlemi için yine form kullanıyor ve forma

<form action="{!! route('user.destroy') !!}">
<input name="_method" type="hidden" value="DELETE">

diyorsun, forma bu gizli alanını ekliyorsun. Laravel bunu da Route::delete rotasına yönlendiriyor.


Tabi bunun dışında yine sen kendin Route::put yada Route::delete diye rotalar tanımlayabilir, istediğin Controller'in istediğin fonksiyonuna yönlendirebilirsin. Sadece PUT ve DELETE rotalarını kullanırken form kullanman ve form içine hidden input ile PUT yada DELETE diyerek metodu bildirmelisin.
Daha detaylı bilgi için; (Türkçe olduğu için Laravel 4.2 dökümanı, Laravel 5 ile farkları olmaması lazım. (çok dikkat etmedim.))
http://laravel.gen.tr/docs/controllers# … ontrollers

Son düzenleyen serturk (15.03.2015 23:58:30)

Çevrimdışı

#5 16.03.2015 07:22:01

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,634
Website

Yanıt: Route::put ve Route::any

PUT ile varolan kayıtları güncelleyin, DELETE ile kayıtları silin.

Çevrimiçi

#6 16.03.2015 11:37:07

MURATSPLAT
Yönetici
Yer: Antalya
Kayıtlı: 06.05.2014
Mesajlar: 642
Website

Yanıt: Route::put ve Route::any

{{ Form::open(array('action' => array('[email protected]'))) }}

Form verileri yollara yönlendirirken 'action' olarak direkt controllerdaki methodlara yönlendirmek bana daha pratik geliyor.. 'as' ile tanımlanan path isimleri bana gereksiz geliyor.

Yukardaki kullanımda routes.php yolunda bir 'as' parametresi eklemenize gerek kalmıyor.
örnek:

 Route::resource('pagecategory', 'PageCategoryController',
                array('only' => array('create', 'store', 'show', 'edit', 'update', 'destroy')));

'Route::get()' ile kullanım benzer şekilde 'as' kullanımına gerek kalmaz.

Çevrimdışı

#7 16.03.2015 12:09:16

radiva
Üye
Kayıtlı: 26.02.2015
Mesajlar: 33

Yanıt: Route::put ve Route::any

cevaplar için herkese ayrı ayrı teşekkürler

Çevrimdışı

Forum alt kısmı