我正在构建一个laravel应用程序,其中第一页我要向表单中的第二页发送变量或说值。我该怎么办? 让我们说在我的第一页中我有几个按钮,所以当用户点击任何一个按钮时,他将被重定向到另一个他必须提交表单的页面。 在第一页中,当他选择一个按钮时,他会自动选择一个course_id,它也将在第二页表格内提交。但是如何从第一页按钮发送course_id?
<li> <a href="{{route('registration')}}">A</a> </li>
<li> <a href="{{route('registration')}}" >B</a> </li>
当用户点击按钮第二页时会出现..我要提交一个表格,其中course_id将来自第一页,表示<a>
标签
这是我的表单演示:
{!! Form::open(array('route' => 'postRegistration','class'=>'form-horizontal','method'=>'POST')) !!}
{!! Form::token(); !!}
{!! csrf_field() ; !!}
<div class="form-group">
<label class="sr-only" for="form-first-name">Name</label>
<input type="text" name="name" placeholder="Name..." class="form-first-name form-control" id="form-first-name">
</div>
<div class="form-group">
<label class="sr-only" for="form-email">Email</label>
<input type="text" name="email" placeholder="Email..." class="form-email form-control" id="form-email">
</div>
<div class="form-group">
<label class="sr-only" for="form-last-name">Address</label>
<textarea rows="4" style="height:100px;" name="address" placeholder="Address..." class="form-last-name form-control" id="form-last-name"></textarea>
</div>
<button type="submit" class="btn">Submit</button>
{!! Form::close() !!}
在我的数据库中,我必须提交上述字段以及数据库中的course_id。 我怎么在Laravel中做到这一点?
请提出任何建议或解决方案吗?
答案 0 :(得分:2)
您可以将变量作为路由参数发送。为此,请更改此<a>
代码。
<li> <a href="{{route('registration', ['course_id' => 'A'])}}">A</a> </li>
<li> <a href="{{route('registration', ['course_id' => 'B'])}}">B</a> </li>
然后您需要允许registration
路由获取参数。假设你的路线是这样的
Route::get('/registration', [
'as' => 'registration', 'uses' => 'SomeController@method'
]);
将其更改为
Route::get('/registration/{course_id}', [
'as' => 'registration', 'uses' => 'SomeController@method'
]);
现在您必须将此参数添加到SomeController@method
public method($course_id){ ... }
现在将此$course_id
传递给您的表单视图。要使用其他字段提交此变量,可以将其添加为隐藏输入字段。
<div class="form-group">
<input type="hidden" name="course_id" value="{{ $course_id }}">
</div>
答案 1 :(得分:1)
因此,您希望创建包含多个课程链接的页面,并且每个链接都会重定向到注册页面,并在注册表单中使用该课程ID。
您的href链接应该如下所示
{!! link_to_route('registration',
$title = 'Course 1', $parameters = ['1'], $attributes =
['class'=>'btn btn-success']) !!}
路由文件 web.php
Route::get('/registration/{course_id}','
CourseRegistration@showForm')->name('registration');
CourseController CourseController
public function showForm($course_id){
return view('registration')->with('courseid',$course_id);
}
现在您可以在视图中使用$ courseid访问课程ID。如果要在表单中传递它,请使用数据创建隐藏或输入标记。
答案 2 :(得分:0)
据我所知,您正在寻找一种类型的网络应用,当用户提交表单时,页面会打开并显示注册的用户详细信息。 这可以在Laravel中完成,如下所示:
<强> routes.php文件强>
// For submitting form on this route
Route::post('users/register', 'UsersController@create')->name('users.register');
// For showing user's profile via user's id
Route::get('users/{id}/profile', 'UsersController@show')->name('users.profile');
<强> UsersController.php 强>
class UsersController {
public function create() {
$inputs = request()->all();
// Use Eloquent to save user info to DB and fetch insert id from DB...
return redirect()->route('users.profile', array('id' => $insert_id));
// Will open registered user profile page
}
public function show($id) {
$user = User::find($id);
if(!$user) {
abort('404');
}
return view('users/profile', compact('user'));
// At the users/profile.php page you can use $user variable to populate user's info
}
}
使用路径方法并在Blade中传递带路径的数据
{{ route('users.profile', array('id' => $user->id)) }}
如需更多帮助,see this >>
希望这能帮到你!