Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 107,405

HOME > บทความจากสมาชิก > Laravel::Schema การจัดการตารางของ Laravel ด้วย Schema Builder





 
Clound SSD Virtual Server

Laravel::Schema การจัดการตารางของ Laravel ด้วย Schema Builder

Laravel:: การจัดการตารางของ Laravel ด้วย Schema Builder เรามาจัดการตารางในฐานข้อมูล ด้วย สกีมา บิ้วเด้อกันครับ

SCHEMA BUILDER( การจัดการตาราง )

Schema Builder คือ ฟังก์ชันที่ Laravel ใช้จัดการตาราง ไม่ว่าจะเป็นลบอ่านเขียน กำหนดค่าของตารางครับ
เพื่อนๆหลายท่านคงเคยใช้ cms หลายๆตัว ที่ตอนเริ่มแรกเขาให้เราตั้งค่า ฐานข้อมูล ตอนสุดท้ายก็จะโหลดนานหน่อย
แต่การโหลดตอนสุดท้ายนี้แหละครับ คือการสร้างฐานข้อมูลขึ้นมา ถ้าอ่านบทความนี้จบแล้วเพื่อนก็สามารถนำฟังก์ชันเหล่านี้ไปสร้างตัวติดตั้งส่วนตัวใช้ได้เลย

Creating & Dropping Tables(สร้างและลบตาราง) ตัวอย่างการสร้างตารางครับ:

Code (PHP)
Schema::create('users', function($table)
{
    $table->increments('id');
});

ในตัวอย่างเราสร้างตาราง user โดยกำหนดให้คอลัมน์ id เป็น auto increments

ตัวอย่างการลบ:

Code (PHP)
Schema::drop('users');


ลบแบบ remote ไปที่อื่น:

Code (PHP)
Schema::drop('users', 'connection_name');


ตัวอย่างการเชื่อมต่อฐานข้อมูลอื่นๆที่ไม่ได้อยู่บนเครื่องเราครับ.

Code (PHP)
Schema::create('users', function($table)
{
    $table->on('connection');
});



Adding Columns( เพิ่มคอลัมน์ ) ตัวอย่างการเพิ่มคอลัมน์ โดยไม่ต้องห่วงเรื่องชนิดของฐานข้อมูลเลยครับ

Code (PHP)
$table->increments('id');
ตั้ง auto increment ให้ id
$table->string('email');
ให้คอลัม email เป็น  varchar
$table->string('name', 100);
ให้คอลัม name เป็น  varchar มีความยาว 100
$table->integer('votes');
ให้คอลัม votes เป็น  integer
$table->float('amount');
ให้คอลัม amount เป็น  float
$table->decimal('amount', 5, 2);
ให้คอลัม amount เป็น  decimal ที่มีค่าระหว่าง 5 กับ 2
$table->boolean('confirmed');
ให้คอลัม confirmed เป็น  boolean
$table->date('created_at');
ให้คอลัม created_at เป็น  date
$table->timestamp('added_on');
ให้คอลัม added_on เป็น  timestamp
$table->timestamps();
ให้คอลัมน์ created_at กับ updated_at สร้างข้อมูลอัตโนมัติเวลามีการเพิ่มหรือแก้ไขข้อมูล
$table->text('description');
ให้คอลัม description เป็น  text
$table->blob('data');
ให้คอลัม data เป็น  blob
->nullable()
ให้คอลัม สามารถเป็นค่าว่างได้
->default($value)
กำหนดค่าเริ่มต้นให้คอลัมน์
->unsigned()
กำหนดให้ interger กลายเป็น unsign

Note: Laravel's "boolean" เวลาสร้างคอลัมน์จะมีชนิดเป็น tiny int

ตัวอย่างการใช้งานจริง

Code (PHP)
Schema::table('users', function($table)
{
    $table->create();
    $table->increments('id');
    $table->string('username');
    $table->string('email');
    $table->string('phone')->nullable();
    $table->text('about');
    $table->timestamps();
});


Dropping Columns( ลบคอลัมน์ ) ตัวอย่างหารลบคอลัน์:

Code (PHP)
$table->drop_column('name');


ตัวอย่างการลบหลายๆคอลัมน์:

Code (PHP)
$table->drop_column(array('name', 'email'));



Adding Indexes ( สร้าง indexes )

Schema builder สนับสนุนการสร้าง index หลายๆชนิดครับ แต่ละ index ก็คือ method ของ schema:
ตัวอย่างการสร้าง index กำหนดให้เป็น unique ให้คอลัมน์ email :

Code (PHP)
$table->string('email')->unique();// การเพิ่ม index ลงในแถวเดียวเลย


ข้างล่างเป็นการสร้าง index ในแบบแยกแถวครับ

คำสั่ง คำอธิบาย

Code (PHP)
$table->primary('id');


เพิ่มคีย์หลัก

Code (PHP)
$table->primary(array('fname', 'lname'));


เพิ่ม primary key แบบ หลายๆตัว

Code (PHP)
$table->unique('email');


ให้คอลัมน์ emailไม่มีการซ้ำ

Code (PHP)
$table->fulltext('description');


ให้คอลัมน์ description มี index เป็น fulltext

Code (PHP)
$table->index('state');


การสร้าง index แบบเบสิค

Code (PHP)
Dropping Indexes ( การลบ indexes)


การลบ index เราต้องกำหนด ตาราง คอลัมน์ ชนิด ของ index เข้าไปด้วยเหมือนในตัวอย่างครับ:

Code (PHP)
$table->drop_primary('users_id_primary');
$table->drop_unique('users_email_unique');
$table->drop_fulltext('profile_description_fulltext');
$table->drop_index('geo_state_index');



Foreign Keys ( การเพิ่มคีย์เชื่อม ) ตัวอย่างการสร้างคีย์เชื่อม:

Code (PHP)
$table->foreign('user_id')->references('id')->on('users');


จะกำหนดการตอบโต้เวลาโดนแก้ไขหรือลบได้ด้วย ครบครันเลยครับ:

Code (PHP)
$table->foreign('user_id')->references('id')->on('users')->on_delete('restrict');
$table->foreign('user_id')->references('id')->on('users')->on_update('cascade');


ตัวอย่างข้างล่างเป็นการลบคีย์เชื่อมของตาราง posts :

Code (PHP)
$table->drop_foreign('posts_user_id_foreign');


Note: คอลัมน์ที่เป็นคีย์เชื่อม laravel จะทำการ auto increments ให้ในกรณีที่คอลัมน์มีชนิดเป็น unsigned โดยใช้ฟังก์ชัน unsigned() โดยเราต้องสร้างคอลัมน์ที่เป็นคีย์เชื่อมนี้ก่อนการเชื่อม และฐานข้อมูลต้องมีชนิดเป็น InnoDB

Code (PHP)
$table->engine = 'InnoDB';
$table->integer('user_id')->unsigned();


บทหน้าจะมาต่อในเรื่อง Cookies กับ Session ครับ







   
Share
Bookmark.   

  By : taqman
  Article : บทความเป็นการเขียนโดยสมาชิก หากมีปัญหาเรื่องลิขสิทธิ์ กรุณาแจ้งให้ทาง webmaster ทราบด้วยครับ
  Score Rating :
  Create Date : 2013-05-20
  Download : No files
Sponsored Links
วิธีการ Redirect จาก HTTP ไปเป็น HTTPS แบบง่ายๆ ด้วย .htaccess
วิธีการ Redirect จาก HTTP ไปเป็น HTTPS แบบง่ายๆ ด้วย .htaccess
หลังจากที่เราได้ติดตั้ง SSL และกำตั้งค่าเว็บจาก HTTP เป็น HTTPS แล้ว ขั้นตอนถัดไปคือการตั้งให้ Redirect ไปยัง URL ที่เป็น HTTPS อัตโนมัติ
Rating : Update : 2018-09-14 17:29:25
C# Extension Methods แบบ บ้านๆ
C# Extension Methods แบบ บ้านๆ
ทุกคนทีเขียนโปรแกรม ก็มักจะเจอว่าเวลาเราเรียกใช้ตัวแปร ต่างๆ แล้วพิมพ์ จุดแล้วมักจะเจอว่ามี method หรือ function ขึ้นมาให้เลือกแบบนี้
Rating : Update : 2019-04-29 15:01:47
ฐานข้อมูล MySql ชื่อประเทศ ไทย+อังกฤษ
ฐานข้อมูล MySql ชื่อประเทศ ไทย+อังกฤษ
ฐานข้อมูล MySql ชื่อประเทศ ไทย+อังกฤษ (แปะไว้เตือนตัวเอง เวลาลืมว่าเคยทำไว้) พร้อมการใช้กับ PHP
Rating : Update : 2018-03-23 20:57:43
7 เหตุผล ที่ไม่ควรใช้ SELECT * เพื่อ Query ข้อมูล
7 เหตุผล ที่ไม่ควรใช้ SELECT * เพื่อ Query ข้อมูล
เชื่อว่า Programmer ทุกคน คงเคยใช้คำสั่ง SQL กันมาบ้างแล้ว และคำสั่งพื้นฐานที่ทุกคนถนัดและมักจะใช้กันบ่อยก็คือ SELECT * แต่วันนี้เรามาดูกันว่า คำสั่งที่เรามักใช้งานกันบ่อยๆ นี้ อาจจะไม่ค่อยเหมาะที่จะใช้เท่าไรนัก แต่จะมีเหตุผลอะไรบ้าง เราไปดูกันเลยครับ
Rating : Update : 2019-03-18 13:57:30
ติดตั้ง SSL (https) ฟรีโดย Let's Encrypt
ติดตั้ง SSL (https) ฟรีโดย Let's Encrypt
วิธีติดตั้ง SSL โดย Let's Encrypt อย่างง่ายที่สุด.
Rating : Update : 2017-11-06 15:25:43
JavaScript ใช้ Deferred แทน  Callback
JavaScript ใช้ Deferred แทน Callback
การทำงานของ javascript บางอย่าง จำเป็นต้องรองานก่อนหน้าให้เสร็จก่อนแล้วจึงสั่งให้ทำงานปัจจุบัน การทำแบบนี้แต่เดิมมักใช้ callback function แต่ปัจจุบันนี้มีวิธีที่ดีกว่านั้น คือ Deferred
Rating : Update : 2018-07-04 01:12:34
มาใช้ Notepad++ ทำการ Compare ไฟล์ระหว่างไฟล์ 2 ไฟล์ว่ามีตรงไหนบ้างที่แตกต่างกัน
มาใช้ Notepad++ ทำการ Compare ไฟล์ระหว่างไฟล์ 2 ไฟล์ว่ามีตรงไหนบ้างที่แตกต่างกัน
วิธีใช้ Notepad++ กับปลั๊กอินที่ใช้สำหรับทำการ Compare ไฟล์ระหว่างไฟล์ 2 ไฟล์ว่ามีตรงไหนบ้างที่แตกต่างกัน จำเป็นอย่างยิ่งในการเขียนโปรแกรม
Rating : Update : 2019-07-18 15:09:35
ThaiCreate.Com Forum


Comunity Forum Free Web Script
Jobs Freelance Free Uploads
Free Web Hosting Free Tools

สอน PHP ผ่าน Youtube ฟรี
สอน Android การเขียนโปรแกรม Android
สอน Windows Phone การเขียนโปรแกรม Windows Phone 7 และ 8
สอน iOS การเขียนโปรแกรม iPhone, iPad
สอน Java การเขียนโปรแกรม ภาษา Java
สอน Java GUI การเขียนโปรแกรม ภาษา Java GUI
สอน JSP การเขียนโปรแกรม ภาษา Java
สอน jQuery การเขียนโปรแกรม ภาษา jQuery
สอน .Net การเขียนโปรแกรม ภาษา .Net
Free Tutorial
สอน Google Maps Api
สอน Windows Service
สอน Entity Framework
สอน Android
สอน Java เขียน Java
Java GUI Swing
สอน JSP (Web App)
iOS (iPhone,iPad)
Windows Phone
Windows Azure
Windows Store
Laravel Framework
Yii PHP Framework
สอน jQuery
สอน jQuery กับ Ajax
สอน PHP OOP (Vdo)
Ajax Tutorials
SQL Tutorials
สอน SQL (Part 2)
JavaScript Tutorial
Javascript Tips
VBScript Tutorial
VBScript Validation
Microsoft Access
MySQL Tutorials
-- Stored Procedure
MariaDB Database
SQL Server Tutorial
SQL Server 2005
SQL Server 2008
SQL Server 2012
-- Stored Procedure
Oracle Database
-- Stored Procedure
SVN (Subversion)
แนวทางการทำ SEO
ปรับแต่งเว็บให้โหลดเร็ว


สุดยอด Source Code V2.0
 

แจ้งชำระเงิน/โอนเงิน
 

Hit Link
   







Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2019 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 08-9968-0655 อัตราราคา คลิกที่นี่