将变量从一个视图传递到另一个视图 - 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
。你有什么想法吗?
编辑:
- 我正在使用 Laravel 5.1 + Laravel 集体
源代码:
<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>
- 当我点击 Chrome Developer Tools > Sources > Sources >
auth/register
时,出现错误(仅一次。其他时间未显示在 Sources
下注册) :
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 的文件中创建该视图,您应该在其中将代码放入我在答案底部传递的表单中:
在回答了我之前的问题后,我复制了最佳答案所说的所有内容,这对他来说非常有效,但对我来说却不是。
我想在我的主页上放置两个按钮(作家和 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
。你有什么想法吗?
编辑:
- 我正在使用 Laravel 5.1 + Laravel 集体
源代码:
<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>
- 当我点击 Chrome Developer Tools > Sources > Sources >
auth/register
时,出现错误(仅一次。其他时间未显示在Sources
下注册) :
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 的文件中创建该视图,您应该在其中将代码放入我在答案底部传递的表单中: