Laravel:我正在尝试将变量从视图传递到控制器,但它返回 null
Posted
技术标签:
【中文标题】Laravel:我正在尝试将变量从视图传递到控制器,但它返回 null【英文标题】:Laravel : I am trying to pass a variable from view to controller but it returns null 【发布时间】:2015-05-29 20:35:12 【问题描述】:这是我的视图代码当我执行应用程序时它只返回 NULL 值,基本上我的 $office_category 没有被传递,我需要办公室类别来查询数据库
<div class="box-body">
Form::open(['route' => 'office.index','class' => 'form-horizontal office-form'])
<div class="form-body">
<div class="form-group">
<div class="col-md-3">
Form::select('office_category', [
null=>'Please Select',
'Software' => 'Software',
'Computer Hardware' => 'Computer Hardware',
'Survey Instruments' => 'Survey Instruments',
'Office Equipments' => 'Office Equipments'
], isset($office_category) ? $office_category : '', ['class' => 'form-control input-xlarge select2me', 'placeholder' => 'Project Type', 'id' => 'office_category'] )
</div>
Form::hidden('office_category', $office_category)
Form::submit('Search Equipment',['class' => 'btn green'])
</div>
</div>
Form::close()
我的控制器代码:我想要 Office 类别就是这样
Class OfficeController extends BaseController
public function index()
$office_category = Input::get('office_category');
if($office_category=='')
$offices = Office::orderBy('office_category', 'asc')
->get();
else
$offices = Office::where('office_category','=',$office_category)
->get();
$assets = ['table','datepicker'];
$users = User::where('client_id','=','')
->orderBy('name','asc')
->lists('name','username');
return View::make('office.index',[
'office_category' => $office_category,
'offices' => $offices,
'users' => $users,
'assets' => $assets
]);
我哪里出错了,请帮忙。
【问题讨论】:
【参考方案1】:您的选择后直接有一个隐藏字段,该字段与该选择同名。这个隐藏字段(空)的值是发送到服务器的值。
删除这一行:
Form::hidden('office_category', $office_category)
或者重命名这个隐藏字段。
【讨论】:
【参考方案2】:默认情况下,Form::open
creates a POST
request 和 Controller 上的索引方法期待 GET
请求。
您需要在routes.php
上添加一个新路由来匹配这个POST
请求。
Route::post('index', 'OfficeController@index');
或者如果你不介意,你可以设置index
来监听任何类型的请求:
Route::any('index', 'OfficeController@index');
【讨论】:
OP 没有提到 MethodNotAllowedHttpException 的 404。我不认为路线是问题。【参考方案3】:在大多数情况下,以上答案将解决您的问题。如果没有,您可以从浏览器检查您的网络请求并确认 $office_category 变量中的值。
【讨论】:
以上是关于Laravel:我正在尝试将变量从视图传递到控制器,但它返回 null的主要内容,如果未能解决你的问题,请参考以下文章