【问题标题】:Laravel 4 pass input from blade to controllerLaravel 4将输入从刀片传递到控制器
【发布时间】:2017-07-31 20:30:42
【问题描述】:
我在 laravel 4 中有一个项目。
在我的刀片文件中,我有:
<div class="col-sm-12">
<a href="{{ action('HomeController@getMore') }}" data-limit="12" data-gap="12">Show more </a>
</div>
我想将我的限制和差距传递给控制器。在控制器中我使用 Input::get('limit');但我得到一个空值。
即使 Input::all() 返回 null。
有什么建议吗?
谢谢!
【问题讨论】:
标签:
php
laravel
laravel-4
blade
laravel-blade
【解决方案1】:
HTML(查看)代码
a 标签的代码
<a href="url('submit/Parameters...')">click ok </a>
表格代码
<form method="POST" action="{{url('submit/Parameters..')}}" method="post">
{{ csrf_field() }}
...
</form>
路线代码
带有操作的路由代码
Route::get('user/{id}', function ($id) {
echo "id is : ".$id ;
});
-
控制器的路由代码
Route::get('user/{id}', 'UserController@show');
控制器代码
<?php
namespace App\Http\Controllers;
use App\User;
use App\Http\Controllers\Controller;
class ShowProfile extends Controller
{
public function index($id)
{
echo $id;
}
}
有关更多信息,您可以查看以下内容
https://laravel.com/docs/5.4/controllers
和https://laravel.com/docs/5.4/routing
【解决方案2】:
试试这个:
<div class="col-sm-12">
<a href="{{ action('HomeController@getMore', ['dataLimit'=>12, 'dataGap'=>12]) }}" data-limit="12" data-gap="12">Show more </a>
并确保您的路由和控制器通过了参数。
Route 必须配置dataLimit 和dataGap 参数,并且控制器方法必须接受它。
【解决方案3】:
输入用于表单。如果要使用锚点,则必须像这样将参数传递给 url
<a href="/url?limit=12&gap=12" >Show more </a>
这使得它们对您的控制器来说是可选的。您只需通过request() 获取它们。
$limit = request('limit');
$gap = request('gap');