簡體   English   中英

Laravel將數據從一個視圖傳遞到另一個視圖

[英]Laravel Passing Data From One View to Another View

我正在考慮從主頁制作一個登陸頁面,它將把訪客引導到注冊頁面。 我想要制作兩個表格來發送數據和兩個提交按鈕,讓我們說讀者和作者,根據他們用來進入注冊表單頁面的按鈕,我想從登錄頁面的按鈕傳遞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頁面。 但是當我直接輸入鏈接時它可以工作。

我認為在/auth/register/中使用$profession並訪問該值並將其用作注冊表單中的隱藏字段。

(使用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正在運作。

以下是有關如何實現它的分步演練。 我測試了它。 所以它有效。 這是針對“作家”的,但您可以像原先為其他職業計划一樣復制它。

我假設你已經注冊了Laravel Collective包,因為你正在使用花括號和感嘆號。

第1步:

在着陸頁視圖中,您有編寫器按鈕,添加一個帶有“writer”字符串的隱藏字段。 像這樣:

{!! Form::open(['route' => ['writer_path']]) !!}
{!! Form::hidden('profession', 'writer') !!}
{!! Form::submit('Writer', array('class' => 'btn btn-warning')) !!}
{!! Form::close() !!}

不是在open字段中我們使用的是命名路由('writer_path')。

第2步:

在routes.php文件中注冊路由和控制器,如下所示:

Route::post('auth/register', [
'as' => 'writer_path',
'uses' => 'SampleController@displayForm'
]);

第3步:

在樣本控制器中,定義displayForm方法。 在該方法中,您首先獲得從登錄頁面視圖傳遞的值。

如果您不知道如何創建控制器,您可以這樣做

php artisan make:controller SampleController

從命令行

因為值以數組形式到達,所以必須從數組中獲取字符串“writer”,然后將其傳遞給新視圖(帶有編寫器注冊表單的視圖)。

<?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的新視圖中,您將顯示包含字符串'writer'的您剛剛傳遞的字段('profession')的表單。 像這樣:

{!! 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,您已在作者的注冊表單中填寫了該字段,其中隱藏字段的信息屬於着陸頁中的編寫器按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM