【问题标题】:Laravel 5 getting input values that are arraysLaravel 5获取数组的输入值
【发布时间】:2015-08-30 03:58:18
【问题描述】:

我有一个像

这样的文本字段
{!! Form::textarea('representive[address_1]' ,null ,['class' =>'textboxlong form-control','style'=>'height:60px;']) !!}

以我的形式。当我尝试在我的控制器中获取它的值但它为空时。我尝试的是

$adress = Request::get('representive.0.address_1');

我还尝试了其他一些方法,但最终无法找到合适的解决方案。我怎样才能得到这个字段的值?任何帮助将不胜感激。

【问题讨论】:

  • 不应该是Request::get('representative');,然后从那个数组中取值吗?
  • 只要Request::get('representative.address_1');。 “.0”部分是不应该存在的。顺便说一句,您还把变量拼错为“$adress”。
  • @orrd Request::get('representative.address_1'); 不起作用。我已经试过了
  • 哦,对不起,我应该说的是Input::get('representative.address_1');Request::get() 方法不理解点符号,因为它是一个 Symfony 方法。否则,如果您出于某种原因需要使用 Request::get(),Joel Hinz 的回答也会起作用。

标签: php laravel input laravel-5 laravel-form


【解决方案1】:

Request::get() 方法由 Symfony\Component\HttpFoundation\Request 实现,Illuminate\Http\Request 类扩展。此方法不会像 Laravel 那样解析使用点符号传递的字符串参数。您应该改用 Request::input 这样做:

$adress = Request::input('representive.address_1');

作为替代方案,您也可以使用Input 外观并使用Input::get()

【讨论】:

  • 我刚刚测试了Request::input('representive.address_1');,它工作得很好。尝试在您的控制器中执行dd(Input::all());,看看您是否真的从客户端获取参数值。
  • {!! Form::textarea('representive[address_1]' ,null ,['class' =>'textboxlong form-control','style'=>'height:60px;']) !!} 字段的值在我返回时没有出现在dd(Input::all()); 数组中,不知道为什么。
  • 那么它很可能与表单本身有关。请从您的表单中发布更多代码。您是如何提交表单的:同步提交还是使用 AJAX 请求提交?
  • Ajax 会更复杂,因为我是 L5 新手。表格的其余部分似乎很好,您认为表格的哪一部分可能会导致这个问题?
  • 如果没有看到整个表单代码,我真的不能说。
猜你喜欢
  • 2016-09-30
  • 1970-01-01
  • 2018-06-06
  • 1970-01-01
  • 1970-01-01
  • 2015-02-24
  • 2021-09-27
  • 1970-01-01
  • 2017-09-09
相关资源
最近更新 更多