Heim >PHP-Framework >Laravel >[Laravel] Praktische Hinweise zum Blog-Projekt – Erstellung mehrstufiger Klassifizierungslisten im Hintergrund und asynchrone Ajax-Änderung der Klassifizierungssortierung

[Laravel] Praktische Hinweise zum Blog-Projekt – Erstellung mehrstufiger Klassifizierungslisten im Hintergrund und asynchrone Ajax-Änderung der Klassifizierungssortierung

演明
演明Original
2021-09-08 07:46:491204Durchsuche

Ich möchte immer ein kleines Projekt alleine machen, aber ich weiß nicht, wie ich anfangen soll. Wenn ich zur Arbeit gehe, mache ich kein Projekt als Ganzes Dies sind die Notizen, die ich als Referenz zusammengestellt habe, nachdem ich das Video auf der chinesischen PHP-Website angesehen habe. Dies ist ein praktisches Blog-Projekt, das in einer Windows-Umgebung erstellt wurde. Ich habe sie Abschnitt für Abschnitt geteilt. Wenn Sie mehr sehen möchten, werde ich weiter aktualisieren. ?? Behandeln Sie die Klassifizierung

public function getTree(){
}

3) Passen Sie oben die folgende Methode in der Methode an

$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) Drucken Sie unten, um zu sehen, ob die oben genannten Parameter übergeben werden

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

5) Filtern Sie zuerst diejenigen heraus, deren cate_pid 0 ist, und durchlaufen Sie dann den Zyklus erneut um diejenigen herauszufiltern, deren cate_pid und cate_id gleich sind. Damit die Methode leistungsfähiger ist, haben wir uns überlegt, die Methode der Parameterübergabe zu verwenden Controller in das Modell

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

Änderungen im Controller:

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

2. Ajax ändert asynchron die Klassifizierungssortierung der Hintergrundartikelkategorieseite

1) Überprüfen Sie, ob jquery in der Hauptvorlage eingeführt ist

2) Schreiben Sie JS

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

Schreiben Sie das Grundformat von jquery

$(function(){});

3) Verwenden Sie JS zum asynchronen Senden

weil ich möchte, dass Ereignisse gesendet werden, wenn dieses Eingabeformular bedient wird,

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

4) (2) dient zum Testen,

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

5) Weiter , eine asynchrone Anfrage wird gesendet

function onangeOrder(){
alert();
}

6) Adresszuweisung

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

7) Routenzuweisung

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

8) Erstellen Sie einen neuen Controller CategoryController.php

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

9) Übergeben Sie den Token-Wert an den Hintergrund

public function changeorder(){
      echo 123;
   }

10) Passen ein paar weitere Parameter. Der erste Parameter ist der _token-Parameter und der zweite Parameter ist die Information darüber, welcher Parameter geändert werden soll. Die drei Parameter geben an, wie stark diese Klassifizierungsinformationen geändert werden sollen. Welche Informationen müssen geändert werden? um diese Klassifizierungsinformationen zu ändern in

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

11) Die folgenden Akzeptanzparameter, der erste ist das Objekt, der zweite ist cate_id

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

12) Lesen Sie den Wert, den wir gerade über obj eingeben

Dann definieren wir eine Variable, cate_order ist gleich $() und übergibt dann obj, und dann übergeben wir .val()

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

und cate_id. Die übergebenen Parameter müssen nicht verarbeitet werden

13) Hier sind einige zu verarbeitende Parameter

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

14) So akzeptieren Sie es, nachdem Sie es an den Controller übergeben haben

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

15) Rufen Sie dann die entsprechenden cate_id-Daten aus der Datenbank ab, ändern Sie den Wert der entsprechenden cate_order und befolgen Sie dann die neuen Wenn diese Daten vorliegen

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

16) aktualisiert wird, wird eine Eingabeaufforderung an die Rezeption gesendet. Dies ist, wenn wir ein $data[] an die Rezeption übergeben Wenn das Popup-Fenster zu hässlich ist, werden im nächsten Abschnitt die Informationen zur Popup-Installation mit Ihnen geteilt.

Die oben genannten Schritte sind meine Lernnotizen. Ich habe die Schritte oder wichtigsten Punkte aufgeschrieben, die ausgeführt werden müssen. Wenn Sie etwas nicht verstehen, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung. Ich hoffe, es kann Xiaobai helfen. Wenn Sie weitere Informationen zum Blog-Projekt sehen möchten, folgen Sie mir und ich werde es im nächsten Artikel weitergeben.

Verwandte Empfehlungen: „

Laravel-Tutorial

Das obige ist der detaillierte Inhalt von[Laravel] Praktische Hinweise zum Blog-Projekt – Erstellung mehrstufiger Klassifizierungslisten im Hintergrund und asynchrone Ajax-Änderung der Klassifizierungssortierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn