[英]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.