在JavaScript中检索雄辩的模型功能



在Laravel中,我有一个雄伟的模型Person和一个功能getSomestringFromPerson(),该功能CC_2正在模型人员上运行并返回字符串。现在,我有一个Ajax请求,其回应是一群人。直到这里我知道该怎么办。

现在,在JavaScript中,我想在响应中显示每个PersongetSomestringFromPerson()的结果。那可能吗?如果是,怎么样?还是我必须在控制器中运行该函数,并将结果包括在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对象需要做其他事情。

最新更新