Tôi có một số hành vi lạ với các biểu mẫu trong Laravel 4. Tôi có một trang "cài đặt" với hai biểu mẫu, mỗi (được cho là) POST với một phương thức điều khiển, cập nhật cơ sở dữ liệu và trở về trang cài đặt. Tuy nhiên, có vẻ như là một vấn đề, với cách thức các biểu mẫu của tôi đang hoạt động hoặc các tuyến đường của tôi.Laravel 4 - Nhiều biểu mẫu trên cùng một trang?
Sau đây là cách nó được, đơn giản hóa:
Cài đặt page: (site.com/settings)
<div id="form-one" class="form-area">
{{ Form::open(array('action' => '[email protected]')) }}
{{ Form::text('optionvalue', 'Default')) }}
{{ Form::submit('Save Changes') }}
{{ Form::close() }}
</div>
<div id="form-two" class="form-area">
{{ Form::open(array('action' => '[email protected]')) }}
{{ Form::text('pagevalue', 'Default')) }}
{{ Form::submit('Save Changes') }}
{{ Form::close() }}
</div>
Vì vậy, về cơ bản, có hai hình thức riêng biệt trên cùng một trang mà gửi đến hai phương pháp riêng biệt trong Bộ điều khiển tương tự - khi phương thức thành công, nó chuyển hướng chúng trở lại "cài đặt". Tôi sẽ không đăng các phương pháp, kể từ khi kiểm tra họ và họ làm việc, tôi tin rằng vấn đề là ở các tuyến đường file:
routes.php
// Checks if a session is active
Route::group(array('before' => 'require_login'), function()
{
Route::group(array('prefix' => 'settings'), function()
{
Route::get('/', '[email protected]');
Route::post('/', '[email protected]');
Route::post('/', '[email protected]');
});
});
Bây giờ tôi khá chắc chắn rằng nó không thích hai tuyến đường POST là như vậy, tuy nhiên tôi không thể nghĩ ra một cách khác để làm điều đó, vì các biểu mẫu nằm trên cùng một trang. Tôi gặp lỗi:
Unknown action [[email protected]].
Vì biểu mẫu tùy chọn đến trước tôi đoán. Nếu tôi lấy mã mở dạng lưỡi ra (cho cả hai), nó sẽ tải trang - nhưng rõ ràng là biểu mẫu không làm gì cả.
Bất kỳ trợ giúp nào sẽ tốt đẹp! Cảm ơn trước.