Il s'agit d'un projet de blog pratique réalisé dans un environnement Windows. Dans le dernier article, nous avons implémenté la modification asynchrone Ajax, mais la fenêtre pop-up était trop moche. Cet article vous donnera une brève introduction à la référence de la fenêtre pop-up. Introduisons ensuite la création d'une classification des articles de fond. J'espère que cela aide tout le monde.
1. Référencez les fenêtres pop-up externes
Introduisez une bibliothèque de fenêtres pop-up :
1) Téléchargez :
2) Ensuite mettez-le dans le package compressé Faites glisser ce fichier vers le chemin de l'étape 3)
3) Vers le chemin de l'image ci-dessous
4) Puis citez
<script src="{{URL::asset('/layer/layer.js')}}"></script>
5) Comment l'utiliser dans le prochaine étape
function onchangeOrder(obj,cate_id){ var cate_order=$(obj).val(); $.post( "{{url('home/cate/changeorder')}}", {'_token':'{{csrf_token()}}','cate_id':cate_id,'cate_order':cate_order}, function(data){ //alert(data.msg); layer.msg(data.msg, {icon: 6}); }); }
6) Mise à jour réussie L'icône finale
function onchangeOrder(obj,cate_id){ var cate_order=$(obj).val(); $.post( "{{url('home/cate/changeorder')}}", {'_token':'{{csrf_token()}}','cate_id':cate_id,'cate_order':cate_order}, function(data){ //alert(data.msg); //layer.msg(data.msg, {icon: 6}); if(data.status==0){ layer.msg(data.msg, {icon: 6}); }else{ layer.msg(data.msg, {icon: 5}); } }); }
La page est terminée, et il y a le vrai tri
public function Tree(){ //$categroy = $this->all(); //这个是去所有数据 $categroy = $this->orderby('cate_order','asc')->get(); //改成只取一条 return $this->getTree($categroy); }
2. Ajoutez une allocation de modèle à la catégorie d'article d'arrière-plan et intégrez la catégorie parent
Affichage de la page :
<form action="{{url('home/category')}}" method="post" autocomplete="off">//向后台提交的数据, action="{url('home/category')}"申请的路由 <select name="cate_pid"> //下拉选择框 <option value="">=请选择=</option> <option value="19">精品界面</option> <option value="20">推荐界面</option> </select> <input type="text" name="cate_name"> 输入框 <textarea name="cate_keywods"></textarea> 文本框 <button class="btn btn-primary" type="submit" name="submit">添加新栏目</button> </form>
Lecture statique :
<select name="cate_pid"> <option value="0">=顶级分类=</option> <option value="19">精品界面</option> <option value="20">推荐界面</option> </select>
Lecture dynamique :
<select name="cate_pid"> <option value="">=顶级分类=</option> @foreach($data as $d) <option value="{{$d->cata_id}}">{{$d->cata_name}}</option> @endforeach </select>
Contrôleur :
controller //GET home/category/create 添加分类 public function create(){ $data = CategroyModel::where('cate_pid',0)->get(); return view('home/categroy/add',compact('data')); } // POST home/category 填加分类提交 public function store(){ $input=Input::all(); //获取前端的所有提交的数据 dd($input); }
3. Classification des articles backend ajoutant des données Vérification de validation et stockage
afficher l'invite du message d'erreur :
@if(count((array)$errors)>0) @if(is_object($errors)) @foreach($errors->all() as $error) {{$error}} @endforeach @else {{$errors}} @endif @endif controller: // POST home/category 填加分类提交 public function store(){ //除了token值,其余都要存进数据库,用except排出放将token排除,全部用all $input=Input::except('_token'); $rules = [ 'cate_name'=>'required' ]; $message = [ 'cate_name.required'=>'分类名称不能为空!', ]; $validator= Validator::make($input,$rules,$message); if($validator->passes()){ // 用create将数据都存进数据库 $res = CategroyModel::create($input); //如果添加成功后返回列表页面 if($res){ return redirect('home/category');//成功返回列表页面 }else{ return back()->with('errors','数据填充失败!'); } }else{ //dd($validator->errors()->all()); return back()->withErrors($validator); } // dd($input); } model : protected $guarded =[];//不可编辑字段包含哪些 $fillable $guarded属性
4 . Méthode d'édition et de simulation de la classification des articles backend
vue d'affichage de la page :
<form action="{{url('home/category/'.$res->cate_id)}}" method="post" autocomplete="off"> <input type="hidden" name="_method" value="put"> //修改传参方法 {{csrf_field()}} //csrf认证 <div class="col-md-5"> <h1 class="page-header">编辑分类</h1> @if(count((array)$errors)>0) //报错信息提示 @if(is_object($errors)) @foreach($errors->all() as $error) {{$error}} @endforeach @else {{$errors}} @endif @endif <div class="form-group"> <label for="category-fname">父级分类</label> <select id="category-fname" class="form-control" name="cate_pid"> <option value="0" selected>=顶级分类=</option> @foreach($data as $d) <option value="{{$d->cate_id}}" @if($d->cate_id==$res->cate_pid) selected @endif //判断是否是顶级分类 >{{$d->cate_name}}</option> @endforeach </select> </div> <div class="form-group"> <label for="category-name">分类名称</label> <input type="text" id="category-name" name="cate_name" value="{{$res->cate_name}}" class="form-control" placeholder="在此处输入栏目名称" autocomplete="off"> </div> <div class="form-group"> <label for="category-alias">分类标题</label> <input type="text" id="category-alias" name="cate_title" value="{{$res->cate_title}}" class="form-control" placeholder="在此处输入栏目别名" autocomplete="off"> </div> <div class="form-group"> <label for="category-keywords">关键字</label> <input type="text" id="category-keywords" name="cate_keyword" value="{{$res->cate_keyword}}" class="form-control" placeholder="在此处输入栏目关键字" autocomplete="off"> </div> <!-- <div class="form-group"> --> <!-- <label for="category-describe">描述</label> --> <!-- <textarea class="form-control" id="cate_describe" name="cate_describe" {{$res->cate_describe}} rows="4" autocomplete="off"></textarea> --> <!-- </div> --> <div class="form-group"> <label for="category-keywords">排序</label> <input type="text" id="category-keywords" name="cate_order" value="{{$res->cate_order}}" class="form-control" placeholder="在此处输入栏目关键字" autocomplete="off"> </div> <button class="btn btn-primary" type="submit" >提交</button> </div> </form>
valeur : fait référence à la valeur par défaut
contrôleur contrôleur :
// GET home/category/{category}/edit 编辑分类 //接受前端传过来的参数 public function edit($cate_id){ //查询当前这条的数据 $res = CategroyModel::find($cate_id); //data数据是读取所有cate_pid等于0的顶级分类 $data = CategroyModel::where('cate_pid',0)->get(); //把本来的数据分配到页面当中然后再做修改 return view('home.categroy.edit',compact('res','data')); } // PUT home/category/{category} 更新分类 //这个参数通过get方法传过来的参数 public function update($cate_id){ //剔除不要的参数 $input=Input::except('_method','_token'); //update更新cate_id等于2的这条数据 $res = CategroyModel::where('cate_id',$cate_id)->update($input); //如果添加成功后返回列表页面 if($res){ //如果成功跳转到列表页面 return redirect('home/category'); }else{ return back()->with('errors','数据填充失败!'); } }
Les étapes ci-dessus sont mes notes d'étude J'ai noté les étapes ou les points clés. À utiliser. Si vous ne comprenez pas, vous pouvez laisser un message. Merci pour votre soutien. J'espère que cela pourra aider Xiaobai. Si vous souhaitez voir plus d'informations sur le projet de blog, suivez-moi et je continuerai à partager dans le prochain article.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!