【问题标题】:Laravel : How to send variable from one page to another in bladeLaravel:如何在刀片中将变量从一个页面发送到另一个页面
【发布时间】:2017-02-14 06:35:42
【问题描述】:

我正在构建一个 laravel 应用程序,我想从第一页向表单的第二页发送变量或说值..我该怎么做? 假设在我的第一个页面中,我有几个按钮,因此当用户单击任何一个按钮时,他将被重定向到另一个页面,他必须在其中提交表单。 在第一页中,当他选择一个按钮时,他会自动选择一个 course_id,它也将在第二页表单中提交。但是如何从第一页按钮发送 course_id?

<li> <a  href="{{route('registration')}}">A</a> </li>
<li> <a href="{{route('registration')}}" >B</a> </li> 

当用户单击按钮时,将出现第二页..我将提交一个表单,其中 course_id 将来自第一页意味着&lt;a&gt; 标签

这是我的表单演示:

{!! 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 中做到这一点?

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

【问题讨论】:

标签: php laravel laravel-5 laravel-blade


【解决方案1】:

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

希望对您有所帮助!

【讨论】:

  • 我想我没能理解你我的问题是什么..我已经编辑了 Qus..你能再检查一下吗?
【解决方案2】:

因此,您希望创建包含多个课程链接的页面,并且每个链接都重定向到注册页面,其中包含要在注册表单中使用的课程 ID。

您的 a 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');

课程控制器 课程控制器

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

现在您可以查看带有 $courseid 的课程 ID。如果您想以表单形式传递它,请使用数据创建一个隐藏或输入标签。

【讨论】:

    【解决方案3】:

    您可以将变量作为路由参数发送。为此,请像这样更改您的 &lt;a&gt; 标签。

    <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>
    

    【讨论】:

    • 但是当我使用你的表单代码时,它破坏了页面样式意味着css,js等。
    • 然后你可以删除 divform-group 类。仅添加隐藏的输入行。
    • 我不确定这里有什么问题,因为第一页样式没问题!但是当我重定向到第二个时,它没有得到相同的样式。是的,我先改变了它。实际上什么也没发生。
    • 我认为这是另一个问题。我不知道你是如何使用 style/js 的。它是否按照您的需要从第一页获取变量?
    • 在这种情况下,我检查了没有传递变量..它正在获取样式..我认为发送变量有问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 2021-12-29
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多