isMethod不起作用

时间:2018-08-03 13:07:19

标签: php laravel

这是我的content.blade.php

<form action="{{ route('home') }}" method="post">

                        <input class="input-text" type="text" name="name" value="Your Name *" onFocus="if(this.value==this.defaultValue)this.value='';" onBlur="if(this.value=='')this.value=this.defaultValue;">
                        <input class="input-text" type="text" name="email" value="Your E-mail *" onFocus="if(this.value==this.defaultValue)this.value='';" onBlur="if(this.value=='')this.value=this.defaultValue;">
                        <textarea name="text" class="input-text text-area" cols="0" rows="0" onFocus="if(this.value==this.defaultValue)this.value='';" onBlur="if(this.value=='')this.value=this.defaultValue;">Your Message *</textarea>
                        <input class="input-btn" type="submit" value="send message">

                        {{ csrf_field() }}

                    </form>

那是我的路线(web.php)

Route::group(['middleware'=>'web'], function(){

Route::match(['get', 'post'], '/', ['uses'=>'IndexController@execute', 'as'=>'home']);
Route::get('/page/{alias}', ['uses'=>'PageController@execute', 'as'=>'page']);

Route::auth();

});

最后是我的IndexController.php,方法execute():

if($request->isMethod('post')){

        $messages = [

          'required' => "Поле :attribute обязательно к заполнению",
          'email' => "Поле :attribute должно соответствовать email адресу"

        ];
        $this->validate($request, [

            'name' => 'required|max:255',
            'email' => 'required|email',
            'text' => 'required'

        ], $messages);

        dump($request);

    }

因此,问题是dump($request)不起作用,我还尝试注释掉dump($request)以外的所有内容,结果是相同的。我认为它只是跳过if($request->isMethod('post')),以便返回该方法不正确,可能不确定令牌是否有问题,我不确定。

如何解决此问题?

编辑: 那是上面if语句的代码

    <?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Page;
use App\Service;
use App\Portfolio;
use App\People;
use DB;

class IndexController extends Controller
{
    //

    public function execute(Request $request){

1 个答案:

答案 0 :(得分:0)

您应该先将$request分配给某个地方。

例如,如果我有一个store方法并且必须使用Request $request来获取信息,则应该首先建立它,因此通过建立它,我的应用程序将识别出变量是什么检索,让我为您展示示例代码:

public function store(Request $request)
{
    $data = $request->all();
    $data['a'] = Input::get('a');
    $data['b'] = Input::get('b');
    $data['c'] = Input::get('c');
    $data['d'] = Input::get('d');
    $data['e'] = Input::get('e');
    Letters::create($data);
    return redirect::to('/');
}

你明白了吗?

如果没有,这是isMethod的示例:

$method = $request->method();

if ($request->isMethod('post')) {
//
}

在您的代码中,我没有看到$var = $request->method();(或您想要的样子)。