2016-12-29 36 views
5

我想將輸入值從一個刀片文件傳遞到另一個刀片文件。Phra laravel 5.3將輸入值從一個刀片文件傳遞到另一個刀片文件

我是PHP Laravel的新手,嘗試使用它時出現錯誤。

我想我的語法在這裏是錯誤的。有人可以幫忙嗎?

channeling.blade:

<select class="form-control " name="fee" id ="fee"></select> 

這是鏈接到下一個頁面,在這裏我想給的 「費」 的值:

<input type="hidden" value="fee" name="fee" /> 
<a href="{{ url('pay ') }}">Click to Channel</a></p> 

這是我的web.php:

Route::post('pay', [ 
    'as' => 'fee', 
    'uses' => '[email protected]' 
]); 

這是我的控制器類:

public function displayForm() 
    { 
     $input = Input::get(); 
     $fee = $input['fee']; 
     return view('pay', ['fee' => $fee]); 
    } 

錯誤消息:

Undefined variable: fee 
(View: C:\xampp\htdocs\lara_test\resources\views\pay.blade.php) 

pay.blade:

<h4>Your Channeling Fee Rs:"{{$fee}}"</h4> 
+0

你得到了什麼錯誤信息?也許'channelController @ displayForm'應該是'ChannelController @ displayForm'。 – joshuamabina

+0

未定義變量:費用(查看:C:\ xampp \ htdocs \ lara_test \ resources \ views \ pay.blade.php) – sara99

+0

未定義變量:費用(查看:C:\ xampp \ htdocs \ lara_test \ resources \ views \ pay。 blade.php) 這是我的pay.blade

您的引導費Rs:「{{$ fee}}」

sara99

回答

0

我改變了這樣的代碼,它的工作..

echanneling.blade

<input type="hidden" value="fee" name="fee" /> 
        <button type="submit" class="btn btn-submit">Submit</button> 

channelController.php

public function about(Request $request) 
    { 

     $input = Input::get(); 
     $fee = $input['fee']; 

     return view('pay')->with('fee',$fee); 
    } 

Web.php 路線::後( '/ pay','channelController @ about');

0

我想你可以試試這個,你誤會url('pay ')空白:

更改代碼:

<a href="{{ url('pay ') }}">Click to Channel</a></p> 

<a href="{{ url('pay') }}">Click to Channel</a></p> 

此外您的問題需要更多的更正,所以我認爲您需要先審查它。

您可以查看關於how to build a form with laravel 5.3。希望這可以幫助你。

+0

這不起作用,因爲'href'會發送'get'請求。 –

1

您應該使用表格發送post請求,因爲a href將發送get。所以,刪除鏈接並使用表單。如果使用Laravel集體,你可以這樣做:

{!! Form::open(['url' => 'pay']) !!} 
{!! Form::hidden('fee', 'fee') !!} 
{!! Form::submit() !!} 
{!! Form::close() !!} 

可以將控制器或request()->fee一個視圖中值。

或者,你可以這樣做:

public function displayForm(Request $request) 
{ 
    return view('pay', ['fee' => $request->fee]); 
} 
0

你必須使用的形式發佈數據,然後你必須提交表單上單擊事件

<form id="form" action="{{ url('pay') }}" method="POST" style="display: none;"> 
    {{ csrf_field() }} 
    <input type="hidden" value="fee" name="fee" /> 
    </form> 

論<一個click事件>

<a href="{{ url('/pay') }}" onclick="event.preventDefault(); 
    document.getElementById('form').submit();"> 
     Logout 
</a> 
0

tl; dr:我相信@AlexeyMezenin的回答是迄今爲止最好的幫助。

您當前的問題:

  • 如果你已經決定使用<a href="{{ url('pay') }}">Click to Channel</a>,你應該使用Route::get(...)。表單提交的請求使用Route::post(...)

  • 沒有創建Input實例。 Input::get()需要一個Form請求存在。因此,$fee未定義變量錯誤消息。

  • <input type="hidden" value="fee" name="fee"/>的值是總是字符串「收費」。 (除非某些JavaScript代碼有一些魔法咒語)。

  • laravel docs建議您在訪問HTTP請求時鍵入提示Request類,以便傳入的請求會自動注入到您的控制器方法中。現在你可以$request->fee。真棒,對吧?


前進的道路:

  • BasicTaskList Laravel 5.2教程踢,開始了我的Laravel旅程。
相關問題