我试图在laravel blade中使用javascript变量。
但是我收到了这个错误。
我应该怎么做才能使用它?
var activeTab = $("ul#tablist li.active");
var floor = {!! \App\Floor::find(activeTab.attr('id')) !!}
使用未定义的常量activeTab - 假设' activeTab'
答案 0 :(得分:1)
好的,所以你可以有另一条这样的路线:
Route::post('/getFloorById', [
'uses' => 'YourController@getFloorById',
'as' => 'getFloorById'
]);
然后,在你的控制器中你有方法:
private function getFloorById($segments)
{
$floorId = $segments[1];
return \App\Floor::find($floorId);
}
最后,你需要你的javascript代码:
var floor = $.post('/getFloorById', {"id": activeTab.attr('id')});
这是ajax方法。请注意,您可能需要使用echo
而不是return
。您可能需要将代码包装到这样的json_encode(\App\Floor::find($floorId))
中,但在大多数情况下,这应该可以完成工作。
您可能希望从onclick
事件调用帖子,以便每次选项卡更改时都会获得新对象。
答案 1 :(得分:0)
不幸的是,blade只是一个输出php的框架。你不需要这样做,但你无论如何都无法做到。这将是一个很大的安全问题。
如果您真的需要floor
使用@Rohan建议的内容,请直接使用javascript:
var floor = activeTab.attr('id');