将变量从一个视图传递到另一个视图 - Laravel 5.1

Passing Variable From One View to Another View - Laravel 5.1

在回答了我之前的问题后,我复制了最佳答案所说的所有内容,这对他来说非常有效,但对我来说却不是。

我想在我的主页上放置两个按钮(作家和 Reader),它们将引导他们进入注册页面并将职业作为隐藏字段放入表单中。

我的主页:

    {!! Form::open(['route' => ['writer_path']]) !!}
    {!! Form::hidden('profession', 'writer') !!}
    {!! Form::submit('Writer', array('class' => 'btn btn-warning')) !!}
    {!! Form::close() !!}

我的routes.php

   Route::post('auth/register', [
     'as' => 'writer_path',
     'uses' => 'ProfessionController@displayForm'
   ]);

ProfessionController.php

   class ProfessionController extends Controller
    {
      //
   public function displayForm()
   {
    $input = Input::get();
    $profession = $input['profession'];
    return view('auth/register', ['profession' => $profession]);
   }
}

当我点击按钮时没有任何反应。当我检查 Developer Tools > Network 时,在我点击按钮之前,似乎没有注册,但是当我点击它时它出现了,但它没有指引我去任何地方。

当 register 到达那里时,它还会在 timelime 和 initiator = Other 中显示一个长条。当我点击注册然后 Preview 它显示 Failed to load response data。你有什么想法吗?


编辑:

源代码:

 <form method="POST" action="http://app.com/auth/register" accept-charset="UTF-8"><input name="_token" type="hidden" value="qq1exVYYTrmuRBrj62HGgOxJWidUK770lF5Wv1qH">
 <input name="profession" type="hidden" value="writer">
 <input class="btn btn-warning" type="submit" value="Writer">
 </form>

TokenMismatchException in /home/vagrant/Code/Laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php line 53:


编辑 2:

尝试将 'method' 添加到 Form::open

{!! Form::open(['route' => ['writer_path'], 'method' => 'POST']) !!}

并在控制器 'Input' 上使用“\”

$input = \Input::get();

这里发生了几件事。

除了我刚才在评论里提到的 (你在同一路径下注册了两条做不同事情的路由,即

Route::post('auth/register', [
'as' => 'writer_path',
'uses' => 'ProfessionController@displayForm'
 ]);

Route::post('auth/register', 'Auth\AuthController@postRegister');

) 它们共存于同一个 routes.php 文件中,如果 url 相同

则可能会发生冲突

此外,您的

public function displayForm()
{
    $input = Input::get();
    $profession = $input['profession'];
    return view('auth/register', ['profession' => $profession]);
}

返回的是视图、路线,而不是说明中的命名路线:

public function displayForm()
{
$input = Input::get();
$profession = $input['profession'];
return view('writerregistration', ['profession' => $profession]);

}

正如我所说,这应该引导您进入一个视图,您将在一个名为 writerregistration.blade.php 的文件中创建该视图,您应该在其中将代码放入我在答案底部传递的表单中: