Laravel และ Eloquent ช่วยให้การพัฒนาแอปพลิเคชันและแพลตฟอร์มเร็วขึ้น โดยมอบวิธีแก้ปัญหาที่เพียงพอสำหรับปัญหาส่วนใหญ่ ความต้องการได้รับการแก้ไขด้วยการพัฒนาที่เร็วขึ้น รวมถึงโค้ดที่มีการจัดระเบียบอย่างดี ใช้ซ้ำได้ บำรุงรักษาได้ และปรับขนาดได้
นักพัฒนาสามารถทำงานใน Eloquent
ด้วยหลายฐานข้อมูลอย่างมีประสิทธิภาพโดยใช้ ActiveMethod เป็นรูปแบบสถาปัตยกรรมที่โมเดลที่สร้างขึ้นในโครงสร้าง Model-View-Controller (MVC) สอดคล้องกับตารางในฐานข้อมูล ข้อดีคือโมเดลดำเนินการกับฐานข้อมูลทั่วไปโดยไม่ต้องเขียนโค้ดคำสั่ง SQL ขนาดยาว เทมเพลตช่วยให้คุณสามารถสืบค้นข้อมูลในตารางและแทรกบันทึกใหม่ลงในตารางได้ กระบวนการซิงโครไนซ์ฐานข้อมูลหลาย ๆ อันที่ทำงานบนระบบที่แตกต่างกันนั้นง่ายขึ้น คุณไม่จำเป็นต้องเขียนคำสั่ง SQL สิ่งที่คุณต้องทำคือ defiเสร็จสิ้นตารางฐานข้อมูลและความสัมพันธ์ระหว่างตารางเหล่านั้น แล้ว Eloquent จะทำงานส่วนที่เหลือ
การชื่นชมประโยชน์ของ Eloquent ORM และการทำความเข้าใจระบบนิเวศเป็นสิ่งที่จำเป็น ขั้นตอนในการเริ่มต้น:
migration
โดยใช้คอนโซล Artisan
eloquent
seed
ของฐานข้อมูลArtisan Console
เป็นชื่อของอินเทอร์เฟซบรรทัดคำสั่งที่รวมอยู่ใน Laravel จัดเตรียมชุดคำสั่งที่เป็นประโยชน์เพื่อใช้ในขณะที่พัฒนาแอปพลิเคชันของคุณ ขับเคลื่อนด้วยส่วนประกอบที่ทรงพลัง Symfony Console
.
หากต้องการดูรายการคำสั่ง Artisan ที่มีอยู่ทั้งหมด คุณสามารถใช้คำสั่ง list:
php artisan list
คำสั่งทั้งหมดมาพร้อมกับคำอธิบายสั้น ๆ ของอาร์กิวเมนต์และตัวเลือก ซึ่งจะแสดงในหน้าจอ "วิธีใช้" ในการแสดงหน้าจอวิธีใช้ เพียงนำหน้าชื่อคำสั่งด้วย “help” ดังที่แสดง:
php artisan help migrate
Migration
Migration คือ กระบวนการจัดการฐานข้อมูล โดยเขียน PHP แทน SQL
. จัดเตรียมวิธีการเพิ่มการควบคุมเวอร์ชันให้กับฐานข้อมูล
หากต้องการสร้างการย้ายข้อมูล ให้รันคำสั่งต่อไปนี้:
php artisan make:migration create_student_records
สิ่งนี้จะสร้างไฟล์การโยกย้าย ในโปรแกรมแก้ไขข้อความ ให้เปิดไฟล์ที่คุณเพิ่งสร้างในโฟลเดอร์ database\migrations
:
<?php
use IlluminateSupportFacadesSchema;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateDatabaseMigrationsMigration;
class CreateStudentRecordsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('student__records', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('student__records');
}
}
รหัสเป็นคลาสที่มีชื่อเดียวกัน 'create student records
' และมีสองวิธี: ขึ้นและลง เมธอด up ควรทำการเปลี่ยนแปลงฐานข้อมูล ดังนั้นเมื่อใดก็ตามที่คุณย้ายฐานข้อมูล โค้ดใดๆ ในเมธอด up จะถูกดำเนินการ ในทางกลับกัน เมธอด down ควรย้อนกลับการเปลี่ยนแปลงฐานข้อมูลเหล่านั้น ดังนั้นเมื่อใดก็ตามที่คุณเรียกใช้ rollback
ของ migration
เมธอดลงควรยกเลิกสิ่งที่เมธอดขึ้นทำ ภายในวิธีการ up
มีตัวสร้างสคีมาที่ใช้ในการสร้างและจัดการตาราง จะเกิดอะไรขึ้นหากคุณยกเลิกการย้ายข้อมูลบางส่วน สิ่งที่คุณต้องทำคือใช้คำสั่งต่อไปนี้:
php artisan migrate:rollback
และเขาจะรวบรวมคนสุดท้าย migration
ที่ได้ดำเนินการแล้ว นอกจากนี้ คุณยังสามารถกู้คืนฐานข้อมูลทั้งหมดได้ด้วยการเรียกใช้:
php artisan migrate:reset
การดำเนินการนี้จะยกเลิกการย้ายข้อมูลทั้งหมดของคุณ
Eloquent
หลังจากการย้ายฐานข้อมูลเสร็จสิ้น กระบวนการต่อไปคือ seeding
. Eloquent
เข้ามามีบทบาทตั้งแต่ seeding
กำลังแทรกบันทึกลงในฐานข้อมูลของเรา ดังนั้นคุณจะต้องสร้างเทมเพลตก่อนที่จะเติมฐานข้อมูล ตารางฐานข้อมูลแต่ละตารางมีรูปแบบที่สอดคล้องกันซึ่งใช้ในการโต้ตอบกับตารางนั้น เทมเพลตช่วยให้คุณสามารถสืบค้นข้อมูลในตารางของคุณ รวมทั้งแทรกระเบียนใหม่ลงในตารางได้ วิธีที่ง่ายที่สุดในการสร้างอินสแตนซ์ของโมเดลคือการใช้คำสั่งต่อไปนี้:
php artisan make:model Student
ตัวอย่างของเทมเพลตแสดงอยู่ด้านล่าง Student
ซึ่งสามารถใช้ในการดึงและจัดเก็บข้อมูลจากตารางฐานข้อมูลของนักเรียนของเรา:
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Student extends Model
{
//
}
เมื่อคุณสร้างแบบจำลองและในเวลาเดียวกันคุณต้องการสร้างการย้ายฐานข้อมูล คุณสามารถใช้ตัวเลือกนี้ได้ –migration
o -m
:
php artisan make:model Student --migration
php artisan make:model Student -m
Seeders โดยรวมเป็นชุดของคลาสพิเศษที่ช่วยให้เราสามารถเติมฐานข้อมูลของเราซ้ำแล้วซ้ำอีกด้วยข้อมูลเดียวกัน เราใช้คำสั่งต่อไปนี้:
php artisan make:seeder StudentsRecordSeeder
ในตัวแก้ไขข้อความ ภายใต้โฟลเดอร์ seed ให้เปิดไฟล์ที่สร้างขึ้นใหม่พร้อมชื่อไฟล์: StudentsRecordSeeder.php
. อย่างที่คุณเห็นนี่เป็นเพียงคลาสง่ายๆที่มีเมธอดเดียวที่เรียกว่า run
()
<?php
use IlluminateDatabaseSeeder;
class StudentsRecordSeeder extends Seeder
{
/**
* Run the database seeds
* @return void
*/
public function run()
{
//
}
}
รหัสเป็นเพียงตัวห่อหุ้มรอบ ๆ คลาสคำสั่งคอนโซลซึ่งสร้างขึ้นโดยเฉพาะเพื่อช่วยในการทำงานของ seeding
. แก้ไขรหัสแล้วบันทึก
public function run()
{
echo 'Seeding!';
}
และไปที่สถานี:
php artisan db:seed --class=StudentsRecordSeeder
ตอนนี้คุณสามารถเติมตารางด้วยบางรายการและเรียกใช้:
php artisan db:seed --class=class=StudentsRecordSeeder
ที่นี่คุณสามารถลบ เพิ่ม แก้ไขรายการในฐานข้อมูล แล้วกู้คืนได้ด้วยคำสั่งง่ายๆ
การดำเนินการ CRUD ด้วย Laravel Eloquent object-relational mapper (ORM) ช่วยให้นักพัฒนา Laravel ทำงานกับฐานข้อมูลหลายฐานข้อมูลได้ง่ายขึ้น ดำเนินการสร้าง อ่าน อัปเดต และลบ (CRUD) และแมปโมเดลวัตถุกับตารางฐานข้อมูล จัดการการโต้ตอบฐานข้อมูลทั้งหมดที่จำเป็นสำหรับการดำเนินการ CRUD
คุณสามารถใช้ ::create วิธีการแทรกระเบียนใหม่ในฐานข้อมูล
student_record::create(array(
'first_name' => 'John',
'last_name' => 'Doe',
'student_rank' => 1
));
นอกจากวิธีการสร้างอย่างง่ายที่แสดงไว้ด้านบนแล้ว คุณยังสามารถสร้างวัตถุใหม่และกำหนดคุณลักษณะต่างๆ ให้กับวัตถุนั้นได้อีกด้วย จากนั้น คุณสามารถเรียกใช้ฟังก์ชัน save() และรันโค้ด วิธีการเช่น firstOrCreate
() อ firstOrNew
() เป็นตัวเลือกอื่นสำหรับการสร้างบันทึก สิ่งเหล่านี้จะช่วยให้คุณค้นหานักเรียนที่มีคุณสมบัติบางอย่างได้ หากไม่พบนักเรียนคนนั้น คุณจะสร้างนักเรียนคนนั้นในฐานข้อมูลหรือสร้างอินสแตนซ์ใหม่ก็ได้
เมื่อใช้ Eloquent ORM คุณสามารถค้นหาบันทึกในฐานข้อมูลของคุณได้ ข้อความค้นหาถูกสร้างขึ้นอย่างเรียบง่ายและมีความลื่นไหล เพื่อสร้างคำสั่ง::where
คุณจะใช้วิธีการ get
() และ first
(). วิธีการ first
() จะส่งคืนเพียงหนึ่งระเบียนในขณะที่เมธอด get
() จะส่งคืนอาร์เรย์ของเรคคอร์ดแบบวนซ้ำได้ นอกจากนี้วิธีการ find
() สามารถใช้กับอาร์เรย์ของคีย์หลัก ซึ่งจะส่งคืนคอลเล็กชันของระเบียนที่ตรงกัน นี่คือตัวอย่างบางส่วน:
$student = Students::all();
รหัสนี้รับนักเรียนทุกคน ในขณะที่รหัสต่อไปนี้ค้นหานักเรียนเฉพาะตาม ID:
$student = นักเรียน :: ค้นหา (1);
นอกจากนี้ ดังที่แสดงด้านล่าง โค้ดอธิบายการค้นหานักเรียนตามแอตทริบิวต์เฉพาะ
$JohnDoe = Students::where('name', '=', 'John Doe')->first();
สำหรับเมธอด get() รหัสนี้แสดงวิธีค้นหานักเรียนที่มีระดับสูงกว่า 5
$rankStudents = Student::where('student_rank', '>', 5)->get();
การอัปเดตบันทึกโดยใช้ Eloquent นั้นง่ายพอๆ กัน หากต้องการอัปเดตเรกคอร์ด เพียงค้นหาเรกคอร์ดที่คุณต้องการอัปเดต แก้ไขแอตทริบิวต์และบันทึก ตัวอย่างเช่น หากต้องการเปลี่ยนระดับเกรดของนักเรียนของ John Doe เป็น 5 ให้ค้นหานักเรียนก่อนแล้วจึงดำเนินการบันทึก
$JohnDoe = Bear::where('name', '=', 'John Doe')->first();
$JohnDoe->danger_level = 5;
$JohnDoe->save();
นอกจากนี้ยังสามารถใช้วิธีการบันทึกเพื่ออัปเดตโมเดลที่มีอยู่แล้วในฐานข้อมูล
Eloquent มีขั้นตอนการอัปเดตบันทึกที่ง่าย แต่ก็มีเรื่องราวเหมือนกันกับการลบ มีสองตัวเลือก: ดึงบันทึกออกและดำเนินการตามวิธีการลบ หรือเพียงแค่ใช้วิธีทำลาย หากต้องการค้นหาและลบบันทึก เพียงเรียกใช้คำสั่งต่อไปนี้:
$student = Students::find(1);
$student->delete();
หากต้องการลบเรกคอร์ดและหลายเรคคอร์ด ให้รันคำสั่ง:
Students::destroy(1);
Students::destroy(1, 2, 3);
โปรดทราบว่าพารามิเตอร์ของการทำลายเป็นเพียงคีย์หลักซึ่งแตกต่างจากวิธีการลบซึ่งสามารถยอมรับคอลัมน์ฐานข้อมูลใดก็ได้
เพื่อค้นหาและลบนักเรียนทุกคนที่อยู่เหนือระดับ 10
Students::where('student_rank', '>', 10)->delete();
Ercole Palmeri
เมื่อวันจันทร์ที่แล้ว Financial Times ได้ประกาศข้อตกลงกับ OpenAI FT อนุญาติให้ทำข่าวระดับโลก...
ผู้คนนับล้านชำระค่าบริการสตรีมมิ่ง โดยจ่ายค่าธรรมเนียมการสมัครสมาชิกรายเดือน เป็นความเห็นทั่วไปที่คุณ...
Coveware by Veeam จะยังคงให้บริการตอบสนองต่อเหตุการณ์การขู่กรรโชกทางไซเบอร์ต่อไป Coveware จะนำเสนอความสามารถในการนิติเวชและการแก้ไข...
การบำรุงรักษาเชิงคาดการณ์กำลังปฏิวัติภาคส่วนน้ำมันและก๊าซ ด้วยแนวทางเชิงรุกและนวัตกรรมในการจัดการโรงงาน...