Php laravel 5.3 将输入值从一个 blade 文件传递到另一个 blade 文件
Php laravel 5.3 passing an input value from one blade file to another blade file
我想将输入值从一个 blade 文件传递到另一个 blade 文件。
我是 PHP Laravel 的新手,我在尝试使用它时遇到错误。
我认为我的语法在这里是错误的。有人可以帮忙吗?
channeling.blade:
<select class="form-control " name="fee" id ="fee"></select>
这是下一页的link,我想在其中发送"fee"的值:
<input type="hidden" value="fee" name="fee" />
<a href="{{ url('pay ') }}">Click to Channel</a></p>
这是我的 web.php:
Route::post('pay', [
'as' => 'fee',
'uses' => 'channelController@displayForm'
]);
这是我的控制器class:
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>
我想你可以试试这个,你把 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。希望对你有帮助。
您应该使用表单发送 post
请求,因为 a href
将发送 get
。因此,删除 link 并使用表单。如果你使用 Laravel Collective,你可以这样做:
{!! 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]);
}
您必须使用表单来 post 数据,然后您必须在点击事件时提交表单
<form id="form" action="{{ url('pay') }}" method="POST" style="display: none;">
{{ csrf_field() }}
<input type="hidden" value="fee" name="fee" />
</form>
关于的点击事件
<a href="{{ url('/pay') }}" onclick="event.preventDefault();
document.getElementById('form').submit();">
Logout
</a>
tl;dr: I believe @AlexeyMezenin's answer is the best help, so far.
您当前的问题:
如果您决定使用<a href="{{ url('pay') }}">Click to Channel</a>
,您应该使用Route::get(...)
。使用 Route::post(...)
用于通过表单提交的请求。
没有创建 Input
实例。 Input::get()
需要存在表单请求。因此,$fee
一个 Undefined variable 错误消息。
<input type="hidden" value="fee" name="fee"/>
的值 总是字符串 "fee"。 (除非某些 JavaScript 代码施展了一些魔法咒语)。
laravel docs建议你在访问HTTP请求时输入提示Request
class,这样传入的请求会自动注入到你的控制器方法中.现在你可以 $request->fee
。太棒了,对吧?
前进的方向:
- BasicTaskList Laravel 5.2 教程开启了我的 Laravel 旅程。
我像这样更改了代码并且它起作用了..
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
Route::post('/支付', 'channelController@about' );
我想将输入值从一个 blade 文件传递到另一个 blade 文件。
我是 PHP Laravel 的新手,我在尝试使用它时遇到错误。
我认为我的语法在这里是错误的。有人可以帮忙吗?
channeling.blade:
<select class="form-control " name="fee" id ="fee"></select>
这是下一页的link,我想在其中发送"fee"的值:
<input type="hidden" value="fee" name="fee" />
<a href="{{ url('pay ') }}">Click to Channel</a></p>
这是我的 web.php:
Route::post('pay', [
'as' => 'fee',
'uses' => 'channelController@displayForm'
]);
这是我的控制器class:
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>
我想你可以试试这个,你把 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。希望对你有帮助。
您应该使用表单发送 post
请求,因为 a href
将发送 get
。因此,删除 link 并使用表单。如果你使用 Laravel Collective,你可以这样做:
{!! 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]);
}
您必须使用表单来 post 数据,然后您必须在点击事件时提交表单
<form id="form" action="{{ url('pay') }}" method="POST" style="display: none;">
{{ csrf_field() }}
<input type="hidden" value="fee" name="fee" />
</form>
关于的点击事件
<a href="{{ url('/pay') }}" onclick="event.preventDefault();
document.getElementById('form').submit();">
Logout
</a>
tl;dr: I believe @AlexeyMezenin's answer is the best help, so far.
您当前的问题:
如果您决定使用
<a href="{{ url('pay') }}">Click to Channel</a>
,您应该使用Route::get(...)
。使用Route::post(...)
用于通过表单提交的请求。没有创建
Input
实例。Input::get()
需要存在表单请求。因此,$fee
一个 Undefined variable 错误消息。<input type="hidden" value="fee" name="fee"/>
的值 总是字符串 "fee"。 (除非某些 JavaScript 代码施展了一些魔法咒语)。laravel docs建议你在访问HTTP请求时输入提示
Request
class,这样传入的请求会自动注入到你的控制器方法中.现在你可以$request->fee
。太棒了,对吧?
前进的方向:
- BasicTaskList Laravel 5.2 教程开启了我的 Laravel 旅程。
我像这样更改了代码并且它起作用了..
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 Route::post('/支付', 'channelController@about' );