在Laravel中,我有一个雄伟的模型Person
和一个功能getSomestringFromPerson()
,该功能CC_2正在模型人员上运行并返回字符串。现在,我有一个Ajax请求,其回应是一群人。直到这里我知道该怎么办。
现在,在JavaScript中,我想在响应中显示每个Person
的getSomestringFromPerson()
的结果。那可能吗?如果是,怎么样?还是我必须在控制器中运行该函数,并将结果包括在AJAX响应中?(对我来说看起来有些麻烦...)
在处理Ajax请求的控制器中,我认为它会得到像这样的People
的集合(最低限度):
public function handleAjax(Request $request){
$people = People::get();
return response()->json(["people" => $people], 200);
}
,然后在您的JS中处理响应的功能:
$.get(URL, function(data){
console.log(data); // Collection (js object) of `People` models.
});
在您的handleAjax
函数中,您将循环循环,并分配一个属性以保持$person->getSomestringFromPerson()
的值:
foreach($people AS $person){
$person->someString = $person->getSomestringFromPerson();
}
然后,在您的Javascript
代码中,您可以这样访问它:
for(var person in data.people){
console.log(data.people[person].someString); // Should return the expected value of `$person->getSomestringFromPerson();` as defined in your function.
}
从那里,您应该能够使用data.people
对象需要做其他事情。