我正在尝试传递一个表单。我正在使用请求方法来获取变量。这是我的形式刀片:
<div class="add_photo">
<h1>Add a photo</h1>
<form action="{{Route('postPhoto')}}">
<span>Name: </span>
<input type="text" name="title">
<span>File: </span>
<input type="text" name="file">
<input type="submit" value="Add">
<input type="hidden" name="_token" value="{{ Session::token() }}">
</form>
</div>
涉及的路线:
Route::get('/admin/gallery', 'GalleryController@manageGallery')->name('manageGallery');
Route::post('/admin/gallery', 'GalleryController@postPhoto')->name('postPhoto');
这是我的控制者:
class GalleryController extends Controller
{
public function manageGallery() {
return view('home.manageGallery');
}
public function postPhoto(Request $request) {
die("works");
}
}
它不会给我带来错误。它什么都不做。所以我的问题是:我使用这种方法是错误的还是我需要更多的东西?提前谢谢。
答案 0 :(得分:0)
首先确保您使用的表单正在使用正确的路线方法
<div class="add_photo">
<h1>Add a photo</h1>
<form action="{{Route('postPhoto')}}" method="post">
<span>Name: </span>
<input type="text" name="title">
<span>File: </span>
<input type="text" name="file">
<input type="submit" value="Add">
<input type="hidden" name="_token" value="{{ Session::token() }}">
</form>
</div>
在您的控制器中,将以下内容放入postPhoto
功能
public function postPhoto(Request $request)
{
dd($request);
}
当您提交表单
时,您现在应该将Request
对象输出到屏幕
答案 1 :(得分:0)
你可能想用Blade Forms来为Laravel以更自然的方式制作表格
{{ Form::open(['route' => '/admin/gallery', 'method' => 'post', 'files' => true]) }}
{{ Form::text('title') }}
{{ Form::label('title', 'Name :') }}
{{ Form::file('file') }}
{{ Form::label('file', 'File :') }}
{{ Form::submit('Add') }}
{{ Form::close() }}
它可以减少自己添加令牌的开销,因为它在使用表单外观时会自动添加。
然后,在你的控制器中,你会在发送表单时做类似的调试:
<?php
use Request; /* do not forget this line */
class GalleryController extends Controller
{
public function postPhoto(Request $request)
{
dd($request->toArray());
}
}