Rumah >rangka kerja php >Laravel >[laravel] nota praktikal projek blog - penciptaan senarai klasifikasi pelbagai peringkat latar belakang dan pengubahsuaian tak segerak bagi pengisihan klasifikasi Ajax

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

演明
演明asal
2021-09-08 07:46:491208semak imbas

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(){
}

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);
}

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

public function getTree($data){
dd($data);
}

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];
}
       }
      }
   }

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];
}
}
}
}

Pengubahsuaian dalam pengawal:

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

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

1) Semak sama ada jquery diperkenalkan dalam templat utama

2) Tulis JS

$(function(){});

Format asas untuk menulis jquery

$(function(){
alert();
});

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方法

4) ( 2) Ia adalah untuk ujian,

function onangeOrder(){
alert();
}

5) Kemudian hantar permintaan tak segerak

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

6) Berikan alamat

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

7) Berikan laluan

Route::post(&#39;admin/changeorder&#39;,&#39;CategoryController@changeorder&#39;);

8) Buat pengawal baharu CategoryController.php

public function changeorder(){
      echo 123;
   }

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){});
}

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}}">

Berapa banyak maklumat klasifikasi ini perlu ditukar?

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

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){});
}

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){});
}

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){});
}

14) Bagaimana untuk menerimanya selepas menyerahkannya kepada pengawal

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

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();
}

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;   //别忘了返回值
}

. 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);
}
);
}

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!

Kenyataan:
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