laravel的帖子没有被拿起来?

时间:2016-12-16 21:57:49

标签: php laravel post routes

我正在尝试传递一个表单。我正在使用请求方法来获取变量。这是我的形式刀片:

<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");
    }
}

它不会给我带来错误。它什么都不做。所以我的问题是:我使用这种方法是错误的还是我需要更多的东西?提前谢谢。

2 个答案:

答案 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());
    }
}