Rumah > rangka kerja php > Laravel > teks badan

[laravel] nota praktikal projek blog - penciptaan senarai klasifikasi pelbagai peringkat latar belakang dan pengubahsuaian tak segerak bagi pengisihan klasifikasi Ajax

演明
Lepaskan: 2021-09-09 16:54:02
asal
1165 orang telah melayarinya

Saya sentiasa mahu membuat projek kecil sendiri, tetapi saya tidak tahu bagaimana untuk memulakannya. Saya sentiasa melakukan bahagian tertentu projek apabila saya pergi ke tempat kerja, dan saya tidak melakukan projek secara keseluruhan . Berikut adalah ringkasan video yang saya tonton di laman web PHP Cina Nota untuk rujukan anda. Ini adalah projek blog praktikal yang dilakukan dalam persekitaran Windows Artikel berikut adalah sebahagian daripada projek yang saya kongsikan.

1. Senarai pengelasan berbilang peringkat pada halaman pengelasan artikel latar belakang

1) Tambahkan klasifikasi berbilang peringkat. Perhatikan bahawa cate_pid dan cate_id adalah sama kategori ia berada dalam

2) Tambah kaedah untuk mengendalikan pengelasan

public function getTree(){
}
Salin selepas log masuk

3) Laraskan kaedah berikut dalam kaedah di atas

$data = $this->getTree($categroy);
public function index(){
$categroy = CategroyModel::all();
$data = $this->getTree($categroy,'cate_name','cate_pid','cate_id');
return view('home/categroy/index')->with('data',$data);
}
Salin selepas log masuk

4) Cetaknya di bawah untuk melihat sama ada parameter di atas diluluskan dalam

public function getTree($data){
dd($data);
}
Salin selepas log masuk

5) Mula-mula tapis mereka yang cate_pid adalah 0, dan kemudian gelung sekali lagi untuk menapis mereka yang cate_pid dan cate_id adalah sama kaedah yang lebih kuat, kami terfikir untuk menggunakan lulus parameter,

public function getTree($data,'$file_pid=‘pid’,$file_id=‘id’,$pid=0){
     $arr = array();
   foreach($data as $key =>$value){
if($value->$file_pid==$pid){
$data[$key]["_cate_name"]=$data[$key]["cate_name"];
$arr[] = $data[$key];
foreach($data as $k=>$v{
                    if($value->$file_pid==$v->$file_id){
      //新定义个字段把分类的下级定义出来
$data[$k]["_cata_name"]='-->'.$data[$k]["cate_name"]
$arr[]=$data[$v];
}
       }
      }
   }
Salin selepas log masuk

Kod dioptimumkan yang lebih baik:

Letakkan proses penyusunan data dalam pengawal ke dalam model

public static function tree(){   //用的是静态方法
$categroy =  CategroyModel::all();
return (new CategroyModel)->getTree($categroy,'cate_name','cate_pid','cate_id');
}
public function tree(){
$categroy = $this->all();
return $this->getTree($categroy,'cate_name','cate_pid','cate_id');
}
public function getTree($data,'$file_pid=‘pid’,$file_id=‘’,$pid=0){
$arr = array();
foreach($data as $key =>$value){
if($value->$file_pid==$pid){
$data[$key]["_cate_name"]=$data[$key]["cate_name"];
$arr[] = $data[$key];
foreach($data as $k=>$v{
if($value->$file_pid==$v->$file_id){
//新定义个字段把分类的下级定义出来
$data[$k]["_cata_name"]='-->'.$data[$k]["cate_name"]
$arr[]=$data[$v];
}
}
}
}
Salin selepas log masuk

Pengubahsuaian dalam pengawal:

public function index(){
// $data= CategroyModel::Tree();   不是静态方法不能用静态方法调用   调用静态方法
$data =(new CategroyModel)->Tree();   调用不是静态方法
return view('home/categroy/index')->with('data',$data);
}
Salin selepas log masuk

2. Ajax mengubah suai pengisihan klasifikasi halaman kategori artikel latar belakang

1) Semak sama ada jquery diperkenalkan dalam templat utama

2) Tulis JS

$(function(){});
Salin selepas log masuk

Format asas untuk menulis jquery

$(function(){
alert();
});
Salin selepas log masuk

3) Gunakan JS untuk menghantar tak segerak

kerana saya ingin menghantar acara semasa beroperasi borang input ini,

<input type="text" onchange="onchangeOrder()" value="{{$v->cate_order}}">  //加一个事件onchange,请求方法onchangeOrder方法
Salin selepas log masuk

4) ( 2) Ia adalah untuk ujian,

function onangeOrder(){
alert();
}
Salin selepas log masuk

5) Kemudian hantar permintaan tak segerak

function onchangeOrder(){
$.post("",{});//第一个url,第二个参数,第三个是回调函数function($data){}回调函数里我们用$data接收
}
Salin selepas log masuk

6) Berikan alamat

function onchangeOrder(){
$.post("{{url(&#39;admin/cate/changeorder&#39;)}}",{},function($data){});
}
Salin selepas log masuk

7) Berikan laluan

Route::post(&#39;admin/changeorder&#39;,&#39;CategoryController@changeorder&#39;);
Salin selepas log masuk

8) Buat pengawal baharu CategoryController.php

public function changeorder(){
      echo 123;
   }
Salin selepas log masuk

9) Hantar nilai token kepada latar belakang

function onchangeOrder(){
$.post("{{url(&#39;admin/cate/changeorder&#39;)}}",{&#39;_token&#39;:&#39;{{csrf_token()}}&#39;},function($data){});
}
Salin selepas log masuk

10) Lulus beberapa lagi parameter , parameter pertama ialah parameter _token, parameter kedua ialah maklumat parameter yang hendak diubah suai, dan parameter ketiga ialah berapa banyak untuk menukar maklumat pengelasan ini

Maklumat manakah yang hendak diubah suai

<input type="text" onchange="onchangeOrder({{$v->cate_id}})" value="{{$v->cate_order}}">
Salin selepas log masuk

Berapa banyak maklumat klasifikasi ini perlu ditukar?

<input type="text" onchange="onchangeOrder(this,{{$v->cate_id}})" value="{{$v->cate_order}}"> //能找到当前输入的值到底多少
Salin selepas log masuk

11) Parameter penerimaan berikut, yang pertama ialah objek, yang kedua ialah cate_id

function onchangeOrder(obj,cate_id){
$.post("{{url(&#39;home/cate/changeorder&#39;)}}",{&#39;_token&#39;:&#39;{{csrf_token()}}&#39;},function($data){});
}
Salin selepas log masuk

12) Baca hingga obj Dapatkan nilai yang sedang kami masukkan

Kemudian kami mentakrifkan pembolehubah, cate_order adalah sama dengan $() dan kemudian lulus obj in, dan kemudian .val()

function onchangeOrder(obj,cate_id){
var cate_order=$(obj).val();
$.post("{{url(&#39;home/cate/changeorder&#39;)}}",{&#39;_token&#39;:&#39;{{csrf_token()}}&#39;},function($data){});
}
Salin selepas log masuk

dan cate_id ialah parameter yang kami lalui dan tidak perlu diproses

13) Berikut ialah beberapa parameter untuk diproses

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){});
}
Salin selepas log masuk

14) Bagaimana untuk menerimanya selepas menyerahkannya kepada pengawal

public function changeorder(){
//用input方法接受前台传过来的值
 $input= Input::all();
print_r( $input);
}
Salin selepas log masuk

15) Kemudian dapatkan data cate_id yang sepadan daripada pangkalan data, tukar nilai cate_order yang sepadan, dan kemudian kemas kini data ini

public function changeorder(){
//用input方法接受前台传过来的值
$input= Input::all();
    $cate=CategroyModel::find($input[&#39;cate_id&#39;]);
      //然后改变order参数
   $cate->cate_order=$input[&#39;cate_order&#39;];
    //更新数据库
    $res = $cate->update();
}
Salin selepas log masuk

16) Semasa mengemas kini, berikan gesaan kepada kaunter hadapan Ini ialah apabila kami memberikan $data[ ] Hantarkannya ke kaunter penerimaan tetamu

public function changeorder(){
//用input方法接受前台传过来的值
$input= Input::all();
$cate=CategroyModel::find($input[&#39;cate_id&#39;]);
//然后改变order参数
$cate->cate_order=$input[&#39;cate_order&#39;];
//执行更新操作
$res=$cate->update();
 if($res){
        $data=[
            &#39;status&#39;=> 0,
            &#39;msg&#39;=>&#39;更新成功!&#39;,
        ];
    }else{
        $data=[
            &#39;status&#39;=> 1,
            &#39;msg&#39;=>&#39;更新失败!&#39;,
        ];
    }
   return $data;   //别忘了返回值
}
Salin selepas log masuk

. 17) Dapatkan nilai fungsi panggil balik

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);
}
);
}
Salin selepas log masuk

Kini keseluruhan proses selesai, tetapi tetingkap pop timbul terlalu hodoh saya akan berkongsi maklumat pemasangan tetingkap timbul dengan anda pada masa akan datang bahagian.

Langkah-langkah di atas adalah nota kajian saya. Saya telah menulis langkah-langkah atau perkara penting yang perlu dilakukan. Jika anda tidak memahami apa-apa, anda boleh meninggalkan mesej. Terima kasih atas sokongan anda. Saya harap ia dapat membantu Xiaobai Jika anda ingin melihat lebih banyak maklumat projek blog, ikuti saya dan saya akan terus berkongsi dalam artikel seterusnya.

Cadangan berkaitan: "tutorial laravel"

Atas ialah kandungan terperinci [laravel] nota praktikal projek blog - penciptaan senarai klasifikasi pelbagai peringkat latar belakang dan pengubahsuaian tak segerak bagi pengisihan klasifikasi Ajax. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan