Laravel : 如何在 blade 中将变量从一页发送到另一页

Laravel : How to send variable from one page to another in blade

我正在构建一个 laravel 应用程序,从第一页开始,我想以某种形式向第二页发送一个变量或值。我该怎么做? 假设在我的第一页中有几个按钮,因此当用户单击任何一个按钮时,他将被重定向到另一个页面,他必须在该页面上提交表单。 在第一页,当他 select 一个按钮时,他会自动 select 一个 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 中如何操作?

有什么建议或解决办法吗?

根据我的说法,您正在寻找一种网络应用程序,当用户提交表单时,页面会打开并显示注册用户的详细信息。 这可以在 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 >>

希望对您有所帮助!

所以你想创建包含多个课程 link 的页面,每个 link 重定向到注册页面,其中包含要在注册表中使用的课程 ID。

您的 href link 应该如下所示

{!! 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');

课程控制器课程控制器

public function showForm($course_id){
    return view('registration')->with('courseid',$course_id);
}

现在您可以访问带有 $courseid 的课程 ID。如果你想在表单中传递它,请创建一个带有数据的隐藏或输入标签。

您可以将变量作为路由参数发送。为此,请像这样更改您的 <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>