没必要非纠结vuejs,使用jquery ajax获取到数据之后,给vuejs里面的对象赋值。然后vuejs会自动更新界面显示的内容。
以bootstrap和font awesome 为例:
var paths={
bootstrap:'./node_modules/bootstrap-sass/assets/',
fontawesome:'./node_modules/font-awesome/'
};
elixir(function(mix) {
mix.sass('app.scss','public/css/app-scss.css',{includePaths:[
paths.bootstrap+'stylesheets/',
paths.fontawesome+'scss/'
]});
});
gulpfile.js 里面这样写。sass文件里面也要有相应的引用代码。在app.scss里面加入:
//这两行是配置引入的bootstrap和fontawesome里面的变量值。
$icon-font-path: "/fonts/bootstrap/";
$fa-font-path: "/fonts/fontawesome";
@import "bootstrap";
@import "font-awesome";
//下面写你自己的sass代码
//
laydate 或者bootstrap-datetimepicker。直接百度就可以找到。
是真实的进度。不过需要高版本的浏览器支持。低版本的浏览器就只能使用flash实现了。 @sswowo
我发的markdown代码坏掉了~ @JellyBool
正好最近有做这个,显示进度是客户端的操作。我并没有使用上传的插件。首先在head
标签里面加上
<meta name="_token" content="{ csrf_token() }">
然后是js代码:
$("#upload_file").on('change',function(){
if(!this.files.length) return false;
var formData=new FormData();
var file=this.files[0];
formData.append('upfile',file,file.name);
var xhr = new XMLHttpRequest();
xhr.open('post','{ action('FileController@upload') }?dir={ $currentDir }',true);
xhr.setRequestHeader('X-CSRF-TOKEN',$("meta[name=_token]").attr('content'));
xhr.onload = function() {
if (xhr.status === 200) {
layer.alert("上传完成!",{},function(){
location.reload(true);
});
} else {
alert('An error occurred!');
}
};
/*主要是这里*/
xhr.upload.onprogress=function(evt){
$("#info").html('正在上传...'+Math.floor(100*evt.loaded/evt.total)+"%");
}
xhr.send(formData);
});
upload_file
是上传按钮的id。info
是显示进度的div的id。里面还有用到layer.alert
,你可以认为就是alert
。当然最重要的一点是低版本的浏览器并不支持。。
这个问题感觉有些乱,县级市应该是和县平级的,就是说要做的话,省市县应该是三级三个表。而且省的下面不应该是直接有县级市的,中间隔了一个市级。anyway,我按照你的需求写了一段代码:
Province::whereHas('cities',function($q){
$q->where('xx','xx');
})->with(["cities"=>function($q){
$q->where('xx','xx');
}])->get()
whereHas
可以限制只显示有地级市的省。with
限制的是有地级市的省只显示里面的地级市。$q->where('xx','xx');
这里替换成你自己的判断地级市的条件。
这些用法都可以在 Eloquent 获取到。