PHP Framework
Laravel
[laravel] blog project practical notes - references to pop-up external plug-ins and addition and editing of background article categories, etc.
[laravel] blog project practical notes - references to pop-up external plug-ins and addition and editing of background article categories, etc.
This is a practical blog project done in a Windows environment. In the last article, we implemented Ajax asynchronous modification, but the pop-up window was too ugly. This article will give you a brief introduction to the reference of the pop-up window. Then let’s introduce the creation of background article classification. I hope to be helpful.
1. Reference to external pop-up windows
Introduce a pop-up window library:
1) Download:
![1631179879898102.png [laravel] blog project practical notes - references to pop-up external plug-ins and addition and editing of background article categories, etc.](https://img.php.cn/upload/image/172/612/759/1631179879898102.png)
2) Then drag the file in the compressed package to the path of step 3)
![1631179890460283.png [laravel] blog project practical notes - references to pop-up external plug-ins and addition and editing of background article categories, etc.](https://img.php.cn/upload/image/961/650/451/1631179890460283.png)
3) In the path of the picture below,
![1631179901762141.png [laravel] blog project practical notes - references to pop-up external plug-ins and addition and editing of background article categories, etc.](https://img.php.cn/upload/image/904/615/803/1631179901762141.png)
4) Then quote
<script src="{{URL::asset('/layer/layer.js')}}"></script>5) What to do next Use
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) After successfully updating the icon
![1631180281279454.png [laravel] blog project practical notes - references to pop-up external plug-ins and addition and editing of background article categories, etc.](https://img.php.cn/upload/image/860/634/208/1631180281279454.png)
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});
}
});
}the page is completed, and the real sorting
public function Tree(){
//$categroy = $this->all(); //这个是去所有数据
$categroy = $this->orderby('cate_order','asc')->get(); //改成只取一条
return $this->getTree($categroy);
}2. Add template allocation to the background article category and embed the parent category
Display page view:
<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>Static reading:
<select name="cate_pid"> <option value="0">=顶级分类=</option> <option value="19">精品界面</option> <option value="20">推荐界面</option> </select>
Dynamic reading:
<select name="cate_pid">
<option value="">=顶级分类=</option>
@foreach($data as $d)
<option value="{{$d->cata_id}}">{{$d->cata_name}}</option>
@endforeach
</select>Controller:
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. Backend article classification, add data Validation verification and storage
view error message prompt:
@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. Background article classification editing and simulation put method
Page display view:
<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 id="编辑分类">编辑分类</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>value: refers to the default value
Controller controller:
// 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','数据填充失败!');
}
}The above steps are my study notes. I wrote down the steps or key points to be operated. If you don’t understand anything, you can leave a message. Thank you for your support. I hope it can help Xiaobai. If you want to see more blog project information, follow me and I will continue to share in the next article.
The above is the detailed content of [laravel] blog project practical notes - references to pop-up external plug-ins and addition and editing of background article categories, etc.. For more information, please follow other related articles on the PHP Chinese website!
Hot AI Tools
Undresser.AI Undress
AI-powered app for creating realistic nude photos
AI Clothes Remover
Online AI tool for removing clothes from photos.
Undress AI Tool
Undress images for free
Clothoff.io
AI clothes remover
AI Hentai Generator
Generate AI Hentai for free.
Hot Article
Hot Tools
Notepad++7.3.1
Easy-to-use and free code editor
SublimeText3 Chinese version
Chinese version, very easy to use
Zend Studio 13.0.1
Powerful PHP integrated development environment
Dreamweaver CS6
Visual web development tools
SublimeText3 Mac version
God-level code editing software (SublimeText3)
Hot Topics
1378
52
Comparison of the latest versions of Laravel and CodeIgniter
Jun 05, 2024 pm 05:29 PM
The latest versions of Laravel 9 and CodeIgniter 4 provide updated features and improvements. Laravel9 adopts MVC architecture and provides functions such as database migration, authentication and template engine. CodeIgniter4 uses HMVC architecture to provide routing, ORM and caching. In terms of performance, Laravel9's service provider-based design pattern and CodeIgniter4's lightweight framework give it excellent performance. In practical applications, Laravel9 is suitable for complex projects that require flexibility and powerful functions, while CodeIgniter4 is suitable for rapid development and small applications.
How do the data processing capabilities in Laravel and CodeIgniter compare?
Jun 01, 2024 pm 01:34 PM
Compare the data processing capabilities of Laravel and CodeIgniter: ORM: Laravel uses EloquentORM, which provides class-object relational mapping, while CodeIgniter uses ActiveRecord to represent the database model as a subclass of PHP classes. Query builder: Laravel has a flexible chained query API, while CodeIgniter’s query builder is simpler and array-based. Data validation: Laravel provides a Validator class that supports custom validation rules, while CodeIgniter has less built-in validation functions and requires manual coding of custom rules. Practical case: User registration example shows Lar
Laravel - Artisan Commands
Aug 27, 2024 am 10:51 AM
Laravel - Artisan Commands - Laravel 5.7 comes with new way of treating and testing new commands. It includes a new feature of testing artisan commands and the demonstration is mentioned below ?
Which one is more beginner-friendly, Laravel or CodeIgniter?
Jun 05, 2024 pm 07:50 PM
For beginners, CodeIgniter has a gentler learning curve and fewer features, but covers basic needs. Laravel offers a wider feature set but has a slightly steeper learning curve. In terms of performance, both Laravel and CodeIgniter perform well. Laravel has more extensive documentation and active community support, while CodeIgniter is simpler, lightweight, and has strong security features. In the practical case of building a blogging application, Laravel's EloquentORM simplifies data manipulation, while CodeIgniter requires more manual configuration.
Laravel vs CodeIgniter: Which framework is better for large projects?
Jun 04, 2024 am 09:09 AM
When choosing a framework for large projects, Laravel and CodeIgniter each have their own advantages. Laravel is designed for enterprise-level applications, offering modular design, dependency injection, and a powerful feature set. CodeIgniter is a lightweight framework more suitable for small to medium-sized projects, emphasizing speed and ease of use. For large projects with complex requirements and a large number of users, Laravel's power and scalability are more suitable. For simple projects or situations with limited resources, CodeIgniter's lightweight and rapid development capabilities are more ideal.
Questions and Answers on PHP Enterprise Application Microservice Architecture Design
May 07, 2024 am 09:36 AM
Microservice architecture uses PHP frameworks (such as Symfony and Laravel) to implement microservices and follows RESTful principles and standard data formats to design APIs. Microservices communicate via message queues, HTTP requests, or gRPC, and use tools such as Prometheus and ELKStack for monitoring and troubleshooting.
Laravel vs CodeIgniter: Which framework is better for small projects?
Jun 04, 2024 pm 05:29 PM
For small projects, Laravel is suitable for larger projects that require strong functionality and security. CodeIgniter is suitable for very small projects that require lightweight and ease of use.
Which is the better template engine, Laravel or CodeIgniter?
Jun 03, 2024 am 11:30 AM
Comparing Laravel's Blade and CodeIgniter's Twig template engine, choose based on project needs and personal preferences: Blade is based on MVC syntax, which encourages good code organization and template inheritance. Twig is a third-party library that provides flexible syntax, powerful filters, extended support, and security sandboxing.


