Laravel 6 - @push 和@stack
Laravel 6 - @push and @stack
大家好我是 Laravel 的新手,我目前正在使用 Laravel 6.0
出于某种原因,我使用@push 的javascript 无法正常工作。该脚本仅在我将代码粘贴到 blade 文件而不使用资产文件夹时才有效。
add.blade.php
@extends('layouts.app')
@section('content')
// Long HTML code
@endsection
@push('scripts')
<script src="{{ asset('js/position.js') }}"></script>
@endpush
布局 > app.blade.php
<main class="py-4">
@yield('content')
</main>
</div>
@stack('scripts')
</body>
public(资产) > js > position.js
$('#department').change(function(){
var departmentID = $(this).val();
if(departmentID) {
$.ajax({
type:"GET",
url:"{{url('get-section-list-position')}}?department_id="+departmentID,
success:function(res){
if(res) {
$("#section").empty();
$("#section").append('<option>Please Select Section</option>');
$.each(res,function(key, value){
$("#section").append('<option value="'+key+'">'+value+'</option>');
});
} else {
$("#section").empty();
}
}
});
} else {
$("#section").empty();
}
});
如果我将脚本粘贴到 add.blade.php 并使用 @section,它可以工作,但我担心系统的安全性会受到威胁。请帮忙。
您的 Javascript 将无法独立运行,因为它不会被 Blade 解析,但它包含 {{url('get-section-list-position')}}
。如果您想使用 Blade 指令,请将 {{url('get-section-list-position')}}
更改为 "hardcoded" URL 或将您的 Javascript 代码放在 @push('scripts')
中:
@push('scripts')
<script>
$('#department').change(function(){
var departmentID = $(this).val();
if(departmentID) {
$.ajax({
type:"GET",
url:"{{url('get-section-list-position')}}?department_id="+departmentID,
success:function(res){
if(res) {
$("#section").empty();
$("#section").append('<option>Please Select Section</option>');
$.each(res,function(key, value){
$("#section").append('<option value="'+key+'">'+value+'</option>');
});
} else {
$("#section").empty();
}
}
});
} else {
$("#section").empty();
}
});
</script>
@endpush
大家好我是 Laravel 的新手,我目前正在使用 Laravel 6.0
出于某种原因,我使用@push 的javascript 无法正常工作。该脚本仅在我将代码粘贴到 blade 文件而不使用资产文件夹时才有效。
add.blade.php
@extends('layouts.app')
@section('content')
// Long HTML code
@endsection
@push('scripts')
<script src="{{ asset('js/position.js') }}"></script>
@endpush
布局 > app.blade.php
<main class="py-4">
@yield('content')
</main>
</div>
@stack('scripts')
</body>
public(资产) > js > position.js
$('#department').change(function(){
var departmentID = $(this).val();
if(departmentID) {
$.ajax({
type:"GET",
url:"{{url('get-section-list-position')}}?department_id="+departmentID,
success:function(res){
if(res) {
$("#section").empty();
$("#section").append('<option>Please Select Section</option>');
$.each(res,function(key, value){
$("#section").append('<option value="'+key+'">'+value+'</option>');
});
} else {
$("#section").empty();
}
}
});
} else {
$("#section").empty();
}
});
如果我将脚本粘贴到 add.blade.php 并使用 @section,它可以工作,但我担心系统的安全性会受到威胁。请帮忙。
您的 Javascript 将无法独立运行,因为它不会被 Blade 解析,但它包含 {{url('get-section-list-position')}}
。如果您想使用 Blade 指令,请将 {{url('get-section-list-position')}}
更改为 "hardcoded" URL 或将您的 Javascript 代码放在 @push('scripts')
中:
@push('scripts')
<script>
$('#department').change(function(){
var departmentID = $(this).val();
if(departmentID) {
$.ajax({
type:"GET",
url:"{{url('get-section-list-position')}}?department_id="+departmentID,
success:function(res){
if(res) {
$("#section").empty();
$("#section").append('<option>Please Select Section</option>');
$.each(res,function(key, value){
$("#section").append('<option value="'+key+'">'+value+'</option>');
});
} else {
$("#section").empty();
}
}
});
} else {
$("#section").empty();
}
});
</script>
@endpush