我想知道。不可能将 Javascript 放入 Blade @如果对吗? Blade @if 是某种形式的 php 但在视图中不鼓励使用 php 代码吗?我应该怎么办?这是我想要实现的目标的逻辑。基本上,有哪些替代方法可以实现我想要做的事情?我试图在满足三个条件时显示按钮。
@if(isToday($one_parking_info->booking_data->m_bkl_end_date) && isBeforeElevenPM() && notEndInT($one_parking_info->booking_data->m_plots_address_city))
<button type="button" class="btn btn-primary btn-sm" onClick="cancelBooking('{{ $one_parking_info->booking_data->m_bkl_gov_id }}')">取消</button>
@endif
Blade 是 php 的一种形式,因此所有工作都在服务器上完成。所以你不能在
@if
表达式中调用 javascript 函数。相反,您可以运行控制器中的函数并返回一个值来说明是否应该包含该按钮,或者如果您不关心用户是否可以找到并显示该按钮,则可以使用 javascript 来显示或隐藏该按钮如果他们愿意的话。
类似于您的控制器中的内容
return view('your view')->with(['showButton' => $shouldShow)
以及您的视图中的内容 @if($shouldShow)
以及其余代码
你的js必须是public的或者是child的,并且会是这样的:
@if(isToday($one_parking_info->booking_data->m_bkl_end_date) && isBeforeElevenPM() && notEndInT($one_parking_info->booking_data->m_plots_address_city))
@include('script.js')
<button type="button" class="btn btn-primary btn-sm" onClick="cancelBooking('{{ $one_parking_info->booking_data->m_bkl_gov_id }}')">取消</button>
@endif
另一个选项可以是
<script src="{{ asset('js/scripts.js') }}"></script>
而不是 @include
指令
我猜:
@if(isToday($one_parking_info->booking_data->m_bkl_end_date) && isBeforeElevenPM() && notEndInT($one_parking_info->booking_data->m_plots_address_city))
@include('script.js')
<button type="button" class="btn btn-primary btn-sm" data-id="{{ $one_parking_info->booking_data->m_bkl_gov_id }}">取消</button>
@endif
<script>
$('body').on('click','.btn-sm',function(){
var id = $(this).attr('data-id');
//
logic of cancelBooking
//
})
</script>
这会起作用:
@if(condition)
<script>
js code to show button
</script>
@endif
@if 函数在 标签周围时它将起作用。