我正在考虑从主页创建一个登陆页面,它将把访客引导到注册页面。我想要制作两个表格来发送数据和两个提交按钮,让我们说读者和作者,根据他们用来进入注册表单页面的按钮,我想从按钮传递profession
字符串在着陆页中,然后将其放入/auth/register
中的注册表单。
{!! Form::open(array('url' => '/auth/register', 'profession' => 'writer')) !!}
{!! Form::submit('Writer', array('class' => 'btn btn-warning')) !!}
{!! Form::close() !!}
{!! Form::open(array('url' => '/auth/register', 'profession' => 'reader')) !!}
{!! Form::submit('Reader', array('class' => 'btn btn-default')) !!}
{!! Form::close() !!}
它没有引导我访问页面app.com/auth/register
。但是当我直接输入链接时它就可以工作。
我认为在$profession
中使用/auth/register/
并访问该值并将其用作注册表单中的隐藏字段。
(使用laravel 5.1)
修改
在视图来源中:
<form method="POST" action="http://app.com/auth/register" accept-charset="UTF-8" profession="writer"><input name="_token" type="hidden" value="dZXQsNI1BGQ39JjDLFUEkSQzL5bTNwe8o3rpiSQL">
<input class="btn btn-warning" type="submit" value="Writer">
</form>
<form method="POST" action="http://app.com/auth/register" accept-charset="UTF-8" profession="reader"><input name="_token" type="hidden" value="dZXQsNI1BGQ39JjDLFUEkSQzL5bTNwe8o3rpiSQL">
<input class="btn btn-default" type="submit" value="Reader">
</form>
编辑2:
{!! Form::open(array('url' => '/auth/register', 'profession' => 'writer')) !!}
{!! link_to('/auth/register', 'Writer', array('class' => 'btn btn-default')) !!}
{!! Form::close() !!}
我尝试了这个。至少,现在它正在指导页面,但我仍然无法访问profession
编辑3:
路线:
Route::get('auth/register', 'Auth\AuthController@getRegister');
Route::post('auth/register', 'Auth\AuthController@postRegister');
Route::get('/', function()
{
return view('pages.home');
});
和https://app.com/auth/register
正在发挥作用。
答案 0 :(得分:3)
这是一个关于如何实现它的一步一步的演练。我测试了它。所以它有效。这是针对“作家”的,但您可以像原先为其他专业计划一样复制它。
我认为您已经注册了Laravel Collective软件包,因为您正在使用花括号和感叹号。
第1步:
在目标网页视图中,您有编写器按钮,添加一个隐藏字段,其中包含字符串&#39; writer&#39;。像这样:
{!! Form::open(['route' => ['writer_path']]) !!}
{!! Form::hidden('profession', 'writer') !!}
{!! Form::submit('Writer', array('class' => 'btn btn-warning')) !!}
{!! Form::close() !!}
在开放领域,我们并没有使用命名路线(&#39; writer_path&#39;)。
第2步:
在routes.php文件中注册路由和控制器,如下所示:
Route::post('auth/register', [
'as' => 'writer_path',
'uses' => 'SampleController@displayForm'
]);
第3步:
在样本控制器中,定义displayForm方法。 在该方法中,您首先获得从着陆页视图传递的值。
如果您不知道如何创建控制器,则可以
php artisan make:controller SampleController
从命令行
因为值以数组形式到达,所以你必须获得字符串&#39; writer&#39;从数组中,然后将其传递给新视图(具有编写器的注册表单的视图)。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Input;
class SampleController extends Controller
{
/**
* Display a listing of the resource.
*
* @return Response
*/
public function displayForm()
{
$input = Input::get();
$profession = $input['profession'];
return view('writerregistration', ['profession' => $profession]);
}
}
最后一步:
在您将创建为writerregistration.blade.php的新视图中,您将显示包含您刚刚传递的字段(&#39; profession&#39;)的表单,其中包含字符串&#39; writer&#39; ;。像这样:
{!! Form::open() !!}
{!! Form::label('username', 'Username:') !!}
{!! Form::text('username', null, ['class' => 'form-control']) !!}
{!! Form::label('profession', 'Profession:') !!}
{!! Form::text('profession', $profession, ['class' => 'form-control']) !!}
{!! Form::label('email', 'Email:') !!}
{!! Form::text('email', null, ['class' => 'form-control']) !!}
{!! Form::label('passowrd', 'Password:') !!}
{!! Form::password('password', ['class' => 'form-control']) !!}
{!! Form::label('password_confirmation', 'Password Confirmation:') !!}
{!! Form::password('password_confirmation', ['class' => 'form-control']) !!}
{!! Form::submit('Sign Up', ['class' => 'btn btn-primary']) !!}
{!! Form::close() !!}
Presto,您已在作者的注册表单中填写了该字段,其中隐藏字段的信息属于着陆页中的编写者按钮。