我正在写一个ajax,它在url包含常量时有效,但在url包含变量时不起作用,因为它不会被实际值代替。
url: "{{ route('layers.destroy',['layer' => 50])}}",
如果我使用一个值,那么说50而不是layer_id,那么它可以工作!!!
DELETE | admin/layers/{layer} | layers.destroy
这是我尝试访问的路线:
url: "{{ route('layers.destroy',['layer' => "+layer_id+"])}}",
如果我未在网址中发送图层参数,则会收到以下错误
message:“缺少[Route:layers.destroy]所需的参数 [URI:admin / layers / {layer}]。 (视图: /var/www/laravelapp/resources/views/layers.blade.php)“
为什么layer_id在这里
version: '2'
services:
mariadb:
image: 'bitnami/mariadb:10.1'
environment:
- ALLOW_EMPTY_PASSWORD=yes
- MARIADB_USER=my_user
- MARIADB_DATABASE=my_database
- MARIADB_PASSWORD=my_password
ports:
- 9990:3306
volumes:
- /home/haaiee/Projects/Docker/decode_appdata/database/mariadb_data:/bitnami/mariadb
myapp:
tty: true
image: bitnami/laravel:5-debian-9
environment:
- DB_HOST=mariadb
- DB_USERNAME=my_user
- DB_DATABASE=my_database
- DB_PASSWORD=my_password
depends_on:
- mariadb
ports:
- 3000:3000
volumes:
- ./:/app
不是用实际值代替吗?
答案 0 :(得分:0)
当您像['layer' => "+layer_id+"]
一样书写时,js变量不起作用。像+layer_id+
一样作为路由的参数。您可以尝试这样
var layer_id = $(this).data('id');
var url = '{{ route("layers.destroy", ":id") }}';
url = url.replace(':id', layer_id );
$.ajax({
type: "POST",
url: url,
data: {},
success: function (data) {
},
error: function (data) {
}
});
答案 1 :(得分:0)
{{URL::to('/destroy')}}+'/'+layer_id;
路线
Route::get('/destroy/{id}', 'controller@destroy')
控制器
public function destroy($id){
// use $id here
}
希望您能理解