Saya mencoba untuk mendapatkan sesuatu yang sangat dasar berjalan. Aku digunakan untuk CI dan sekarang belajar Laravel 4, dan mereka docs tidak membuat itu mudah! Lagian, saya mencoba untuk membuat form login dan pastikan bahwa data yang berhasil dikirim dengan mencetak dalam bentuk berikutnya. Saya mendapatkan pengecualian ini:
Symfony \ Component \ HttpKernel \ Terkecuali \ MethodNotAllowedHttpException
dan saya MemberController.php:
public function index()
{
if (Session::has('userToken'))
{
/*Retrieve data of user from DB using token & Load view*/
return View::make('members/profile');
}else{
return View::make('members/login');
}
}
public function validateCredentials()
{
if(Input::post())
{
$email = Input::post('email');
$password = Input::post('password');
return "Email: " . $email . " and Password: " . $password;
}else{
return View::make('members/login');
}
}
dan rute yang telah:
Route::get('/', function()
{
return View::make('hello');
});
Route::get('/members', 'MemberController@index');
Route::get('/validate', 'MemberController@validateCredentials');
dan akhirnya saya melihat login.php memiliki bentuk arah:
<?php echo Form::open(array('action' => 'MemberController@validateCredentials')); ?>
Setiap bantuan akan sangat dihargai.
Anda mendapatkan kesalahan itu karena anda posting ke MENDAPATKAN
rute.
Saya akan membagi routing untuk validasi
menjadi GET
dan POST
rute.
Rute Baru: ``php Route::post('memvalidasi', 'MemberController@validateCredentials');
Route::get('memvalidasi', function () { return View::make('anggota/login'); }); ``
Kemudian controller metode bisa saja
php fungsi publik validateCredentials() { $email = Masukan::post('email'); $password = Masukan::post('kata'); kembali "Email: " . $email . " dan Password: " . $password; }
Kecurigaan saya adalah masalah terletak pada rute anda definisi.
Anda didefinisikan rute sebagai MENDAPATKAN
permintaan tetapi bentuk ini mungkin mengirimkan permintaan POST
. Perubahan rute anda definisi.
php Route::post('/memvalidasi', 'MemberController@validateCredentials');
It's umumnya praktek yang lebih baik untuk menggunakan nama rute (membantu untuk skala jika controller metode/perubahan kelas).
php Route::post('/memvalidasi', array( 'sebagai' => 'memvalidasi', 'menggunakan' => 'MemberController@validateCredentials' ));
Dalam bentuk penggunaan berikut
<?php echo Bentuk::open(array('rute' => 'memvalidasi')); ?>
Saya mengalami masalah ini juga dan dengan jawaban yang lain di sini adalah membantu, tapi saya menggunakan Route::sumber daya
yang mengurus MENDAPATKAN
, POST
, dan permintaan lainnya.
Dalam kasus saya, saya meninggalkan saya seperti ini:
php Rute::sumber daya('file', 'FilesController');
Dan hanya dimodifikasi formulir saya untuk menyerahkan ke toko
fungsi saya FilesController
html {{ Form::open(array('rute' => 'file.toko')) }}
Ini tetap masalah, dan saya pikir itu layak untuk menunjuk keluar sebagai jawaban yang terpisah karena berbagai jawaban yang lain menyarankan untuk menambahkan baru POST
rute. Ini adalah pilihan tapi itu's tidak diperlukan.
Itu karena anda posting data untuk MENDAPATKAN
rute.
php Route::get('/memvalidasi', 'MemberController@validateCredentials');
coba ini
php Route::post('/memvalidasi', 'MemberController@validateCredentials');
<?php echo Bentuk::open(array('action' => 'MemberController@validateCredentials')); ?>
secara default, Form::open()
menganggap POST
metode.
anda telah MENDAPATKAN
di rute anda. perubahan itu untuk POST
di rute yang sesuai.
atau jika anda ingin menggunakan MENDAPATKAN
metode, kemudian tambahkan metode
param.
misalnya
Bentuk::open(array('url' => 'foo/bar', 'metode' => 'mendapatkan'))
Dalam kasus saya, saya mengirim permintaan POST
lebih dari HTTP
ke server di mana saya telah menyiapkan Nginx
untuk mengarahkan semua permintaan untuk port 80
port 443
di mana saya melayani aplikasi lebih HTTPS
.
Membuat permintaan untuk port yang benar langsung tetap masalah. Dalam kasus saya, semua saya harus lakukan adalah mengganti http://
dalam permintaan URL https://
sejak saya menggunakan port default 80
dan 443
masing-masing.
Saya menghadapi kesalahan, masalah BENTUK METODE
{{ Form::open(array('url' => 'admin/dokter/edit/'.$dokter->doctor_id,'kelas'=>'bentuk-bentuk horisontal berbatasan bentuk-baris-ditelanjangi','metode' => 'MENEMPATKAN','file'=>true)) }}
Ini harus menjadi seperti ini
{{ Form::open(array('url' => 'admin/dokter/edit/'.$dokter->doctor_id,'kelas'=>'bentuk-bentuk horisontal berbatasan bentuk-baris-ditelanjangi','metode' => 'POST','file'=>true)) }}
Umumnya, ada kesalahan dalam HTTP kata kerja yang digunakan misalnya:
Panggilan MENEMPATKAN
rute dengan permintaan POST
Saya juga punya kesalahan yang sama tapi berbeda fix, saya XYZ.blade.php
saya punya:
{!! Bentuk::open(array('ul' => 'layanan.toko')) !!}
yang memberi saya kesalahan, aku masih don't tahu mengapa - tapi ketika aku berubah ke
{!! Bentuk::open(array('rute' => 'layanan.toko')) !!}
Itu bekerja!
Saya pikir itu layak berbagi :)
Masalah saya adalah bahwa saya tidak rute yang ditetapkan tidak benar, tetapi bahwa saya adalah referensi yang salah Bentuk
metode (yang saya telah disalin dari bentuk yang berbeda). Yang saya lakukan...
{!! Bentuk::model([ ... ]) !!}
(dengan tidak ada model tertentu). Tapi aku harus telah menggunakan regular terbuka
metode...
{!! Bentuk::open([ ... ]) !!}
Karena parameter pertama untuk model
mengharapkan sebuah model yang asli, itu tidak mendapatkan apapun dari saya, pilihan saya yang menentukan. Semoga ini bisa membantu seseorang yang tahu rute mereka adalah benar, tapi ada sesuatu yang lain yang salah.
nah ketika saya punya masalah ini saya menghadapi 2 kode kesalahan
{!! Form::model(['method' => 'POST','route' => ['message.store']]) !!}
saya dikoreksi dengan melakukan ini
{!! Form::open(['method' => 'POST','route' => 'message.store']) !!}
jadi hanya untuk menulis dgn panjang lebar saya berubah bentuk model
untuk terbuka
dan juga rute mana salah ditempatkan dalam kurung siku.
Laravel kadang-kadang tidak mendukung {!! Bentuk::open(['url' => 'posts/toko']) !!}
untuk alasan keamanan. Yang's mengapa kesalahan yang telah terjadi. Anda dapat mengatasi kesalahan ini dengan hanya mengganti kode di bawah ini
{!! Form::open(array('route' => 'posts.store')) !!}
Kode Kesalahan {!! Bentuk::open(['url' => 'posts/toko']) !!}
Kode yang Benar {!! Bentuk::open(array('rute' => 'posting.toko')) !!}
` // tidak dilakukan Route::post('
/posts/{id}`', 'PostsController@toko')-> (nama'posting.toko');
kembali mengarahkan('/tulisan'
)->dengan('status','Posting itu dibuat !');
// lakukan
Route::post('/posting
', 'PostsController@toko')-> (nama'posting.toko');
kembali mengarahkan('/tulisan'
)->dengan('status','Posting itu dibuat !');
``