试图从对象中获取 属性 个非对象
Trying to get property of non-object, from an object
我正在序列化一个表单,其中包含一个 select
输入,其中一个对象作为其 value
,将通过 Ajax:
发送到后端
<select name="language" class="form-control">
<option value="" selected disabled>Choose a Language</option>
<option value="{ locale: 'AF', name: 'Afrikaans' }">Afrikaans</option>
...
</select>
然后使用 VueJS 通过 Ajax 发送数据:
$.post("/ajax/admin/languages", $("#addLanguageForm").serialize()).done((data) => {
if (data.success) {
toastr.success("A new language has been added");
} else {
toastr.error("An error occurred");
}
})
然后,路由调用的方法被触发,这里我通过logging来查看数据:
public function store(Request $r)
{
$x = $r->input('language');
Log::info($x);
}
将显示以下内容:
[2018-01-29 05:52:18] local.INFO: { locale: 'AF', name: 'Afrikaans' }
然后我尝试通过 $x->locale
和 $x->name
访问这些键以存储它们的值,这导致了错误,即使是一个对象。
我可能遗漏了什么?
在一些帮助和想法的帮助下,我想出了一个解决方案。首先,我按照@JigarShah 的建议修改了 JSON 格式,然后,在控制器中,使用以下代码:
public function store(Request $r)
{
$x = $r->input('language');
$d = json_decode($x);
print_r($d->name);
}
一切正常。
我正在序列化一个表单,其中包含一个 select
输入,其中一个对象作为其 value
,将通过 Ajax:
<select name="language" class="form-control">
<option value="" selected disabled>Choose a Language</option>
<option value="{ locale: 'AF', name: 'Afrikaans' }">Afrikaans</option>
...
</select>
然后使用 VueJS 通过 Ajax 发送数据:
$.post("/ajax/admin/languages", $("#addLanguageForm").serialize()).done((data) => {
if (data.success) {
toastr.success("A new language has been added");
} else {
toastr.error("An error occurred");
}
})
然后,路由调用的方法被触发,这里我通过logging来查看数据:
public function store(Request $r)
{
$x = $r->input('language');
Log::info($x);
}
将显示以下内容:
[2018-01-29 05:52:18] local.INFO: { locale: 'AF', name: 'Afrikaans' }
然后我尝试通过 $x->locale
和 $x->name
访问这些键以存储它们的值,这导致了错误,即使是一个对象。
我可能遗漏了什么?
在一些帮助和想法的帮助下,我想出了一个解决方案。首先,我按照@JigarShah 的建议修改了 JSON 格式,然后,在控制器中,使用以下代码:
public function store(Request $r)
{
$x = $r->input('language');
$d = json_decode($x);
print_r($d->name);
}
一切正常。