Maison > cadre php > Laravel > Notes pratiques du projet de blog [laravel] - références aux plug-ins externes contextuels et ajout et modification de catégories d'articles de fond, etc.

Notes pratiques du projet de blog [laravel] - références aux plug-ins externes contextuels et ajout et modification de catégories d'articles de fond, etc.

演明
Libérer: 2021-09-10 15:32:26
original
1540 Les gens l'ont consulté

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 :

http://layer.layui.com/

1) Téléchargez :

Notes pratiques du projet de blog [laravel] - références aux plug-ins externes contextuels et ajout et modification de catégories darticles de fond, etc.

2) Ensuite mettez-le dans le package compressé Faites glisser ce fichier vers le chemin de l'étape 3)

Notes pratiques du projet de blog [laravel] - références aux plug-ins externes contextuels et ajout et modification de catégories darticles de fond, etc.

3) Vers le chemin de l'image ci-dessous

Notes pratiques du projet de blog [laravel] - références aux plug-ins externes contextuels et ajout et modification de catégories darticles de fond, etc.

4) Puis citez

<script src="{{URL::asset(&#39;/layer/layer.js&#39;)}}"></script>
Copier après la connexion

5) Comment l'utiliser dans le prochaine étape

function onchangeOrder(obj,cate_id){
var cate_order=$(obj).val();
$.post(
"{{url(&#39;home/cate/changeorder&#39;)}}",
{&#39;_token&#39;:&#39;{{csrf_token()}}&#39;,&#39;cate_id&#39;:cate_id,&#39;cate_order&#39;:cate_order},
function(data){
//alert(data.msg);
layer.msg(data.msg, {icon: 6});
});
}
Copier après la connexion

6) Mise à jour réussie L'icône finale

Notes pratiques du projet de blog [laravel] - références aux plug-ins externes contextuels et ajout et modification de catégories darticles de fond, etc.

function onchangeOrder(obj,cate_id){
var cate_order=$(obj).val();
$.post(
"{{url(&#39;home/cate/changeorder&#39;)}}",
{&#39;_token&#39;:&#39;{{csrf_token()}}&#39;,&#39;cate_id&#39;:cate_id,&#39;cate_order&#39;: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});
}
});
}
Copier après la connexion

La page est terminée, et il y a le vrai tri

public function Tree(){
//$categroy = $this->all();                                                 //这个是去所有数据
$categroy = $this->orderby(&#39;cate_order&#39;,&#39;asc&#39;)->get(); //改成只取一条
return $this->getTree($categroy);
}
Copier après la connexion

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(&#39;home/category&#39;)}}" method="post" autocomplete="off">//向后台提交的数据, action="{url(&#39;home/category&#39;)}"申请的路由
<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>
Copier après la connexion

Lecture statique :

<select name="cate_pid">
<option value="0">=顶级分类=</option>
<option value="19">精品界面</option>
<option value="20">推荐界面</option>
</select>
Copier après la connexion

Lecture dynamique :

<select name="cate_pid">
<option value="">=顶级分类=</option>
@foreach($data as $d)
<option value="{{$d->cata_id}}">{{$d->cata_name}}</option>
@endforeach
</select>
Copier après la connexion

Contrôleur :

controller
//GET home/category/create 添加分类
public function create(){
$data = CategroyModel::where(&#39;cate_pid&#39;,0)->get();
return view(&#39;home/categroy/add&#39;,compact(&#39;data&#39;));
}
// POST home/category      填加分类提交
public function store(){
$input=Input::all();  //获取前端的所有提交的数据
dd($input);
}
Copier après la connexion

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(&#39;_token&#39;);
$rules = [
&#39;cate_name&#39;=>&#39;required&#39;
];
$message = [
&#39;cate_name.required&#39;=>&#39;分类名称不能为空!&#39;,
];
$validator= Validator::make($input,$rules,$message);
if($validator->passes()){
// 用create将数据都存进数据库
$res = CategroyModel::create($input);
//如果添加成功后返回列表页面
if($res){
return redirect(&#39;home/category&#39;);//成功返回列表页面
}else{
return back()->with(&#39;errors&#39;,&#39;数据填充失败!&#39;);
}
}else{
//dd($validator->errors()->all());
return back()->withErrors($validator);
}
// dd($input);
}
model :
protected $guarded =[];//不可编辑字段包含哪些 $fillable $guarded属性
Copier après la connexion

4 . Méthode d'édition et de simulation de la classification des articles backend

vue d'affichage de la page :

<form action="{{url(&#39;home/category/&#39;.$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>
Copier après la connexion

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(&#39;cate_pid&#39;,0)->get();
//把本来的数据分配到页面当中然后再做修改
return view(&#39;home.categroy.edit&#39;,compact(&#39;res&#39;,&#39;data&#39;));
}
// PUT home/category/{category}   更新分类
//这个参数通过get方法传过来的参数
public function update($cate_id){
//剔除不要的参数
$input=Input::except(&#39;_method&#39;,&#39;_token&#39;);
//update更新cate_id等于2的这条数据
$res = CategroyModel::where(&#39;cate_id&#39;,$cate_id)->update($input);
//如果添加成功后返回列表页面
if($res){
//如果成功跳转到列表页面
return redirect(&#39;home/category&#39;);
}else{
return back()->with(&#39;errors&#39;,&#39;数据填充失败!&#39;);
}
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal