فهرست:

لاراول ارتباط با پایگاه داده را بسیار آسان کرده است، لاراول در حال حاضر از پایگاه داده های زیر پشتیبانی می کند.

  • MySQL
  • Postgres
  • SQLite
  • SQL Server

برای بررسی بهتر کار با پایگاه داده در لاراول یک CRUD (ایجاد ، خواندن ، به روزرسانی ، حذف) را بررسی می کنیم. برای این منظور یک جدول در پایگاه داده mysql بصورت زیر ایجاد می کنیم.

[pastacode lang=”sql” manual=”CREATE%20TABLE%20student%20(%0Aid%20INT(11)%20UNSIGNED%20AUTO_INCREMENT%20PRIMARY%20KEY%2C%0Aname%20VARCHAR(255)%20NOT%20NULL%2C%0Areg_date%20TIMESTAMP%20DEFAULT%20CURRENT_TIMESTAMP%20ON%20UPDATE%20CURRENT_TIMESTAMP%0A)” message=”” highlight=”” provider=”manual”/]

اتصال به پایگاه داده

تنظیمات پایگاه داده در لاراول در فایل config/database.php انجام می شود.

Insert Records

بعد کانفیگ کردن پایگاه داده ابتدا برای ساخت کنترلر StudInsertController از دستور زیر استفاده می کنیم.

[pastacode lang=”markup” manual=”php%20artisan%20make%3Acontroller%20StudInsertController%20–plain%0A” message=”” highlight=”” provider=”manual”/]

بعد از ایجاد کنترلر فایل StudInsertController.php بصورت زیر ویرایش کنید.

[pastacode lang=”php” manual=”%3C%3Fphp%0A%0Anamespace%20App%5CHttp%5CControllers%3B%0A%0Ause%20Illuminate%5CHttp%5CRequest%3B%0Ause%20DB%3B%0Ause%20App%5CHttp%5CRequests%3B%0Ause%20App%5CHttp%5CControllers%5CController%3B%0A%0Aclass%20StudInsertController%20extends%20Controller%20%7B%0A%20%20%20public%20function%20insertform()%20%7B%0A%20%20%20%20%20%20return%20view(‘stud_create’)%3B%0A%20%20%20%7D%0A%09%0A%20%20%20public%20function%20insert(Request%20%24request)%20%7B%0A%20%20%20%20%20%20%24name%20%3D%20%24request-%3Einput(‘stud_name’)%3B%0A%20%20%20%20%20%20DB%3A%3Ainsert(‘insert%20into%20student%20(name)%20values(%3F)’%2C%5B%24name%5D)%3B%0A%20%20%20%20%20%20echo%20%22Record%20inserted%20successfully.%3Cbr%2F%3E%22%3B%0A%20%20%20%20%20%20echo%20’%3Ca%20href%20%3D%20%22%2Finsert%22%3EClick%20Here%3C%2Fa%3E%20to%20go%20back.’%3B%0A%20%20%20%7D%0A%7D” message=”app/Http/Controllers/StudInsertController.php” highlight=”” provider=”manual”/]

برای درست کردن View مورد نیاز یک فایل به نام stud_create.php بصورت زیر در دایرکتوری resources/views ایجاد می کنیم.

[pastacode lang=”php” manual=”%3Chtml%3E%0A%20%20%20%3Chead%3E%0A%20%20%20%20%20%20%3Ctitle%3EStudent%20Management%20%7C%20Add%3C%2Ftitle%3E%0A%20%20%20%3C%2Fhead%3E%0A%0A%20%20%20%3Cbody%3E%0A%20%20%20%20%20%20%3Cform%20action%20%3D%20%22%2Fcreate%22%20method%20%3D%20%22post%22%3E%0A%20%20%20%20%20%20%20%20%20%3Cinput%20type%20%3D%20%22hidden%22%20name%20%3D%20%22_token%22%20value%20%3D%20%22%3C%3Fphp%20echo%20csrf_token()%3B%20%3F%3E%22%3E%0A%20%20%20%20%20%20%20%20%20%3Ctable%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctr%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3EName%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3E%3Cinput%20type%3D’text’%20name%3D’stud_name’%20%2F%3E%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Ftr%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctr%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%20colspan%20%3D%20’2’%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cinput%20type%20%3D%20’submit’%20value%20%3D%20%22Add%20student%22%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Ftr%3E%0A%20%20%20%20%20%20%20%20%20%3C%2Ftable%3E%0A%20%20%20%20%20%20%3C%2Fform%3E%0A%20%20%20%20%20%20%0A%20%20%20%3C%2Fbody%3E%0A%3C%2Fhtml%3E” message=”resources/views/stud_create.php” highlight=”” provider=”manual”/]

فایل routes.php را بصورت زیر ویرایش کنید.

[pastacode lang=”php” manual=”Route%3A%3Aget(‘insert’%2C’StudInsertController%40insertform’)%3B%0ARoute%3A%3Apost(‘create’%2C’StudInsertController%40insert’)%3B” message=”app/Http/routes.php” highlight=”” provider=”manual”/]

به آدرس زیر مراجعه کنید، حال می توانید ورود دیتا به پایگاه داده خود را تست نمایید.

[pastacode lang=”markup” manual=”http%3A%2F%2Flocalhost%3A8000%2Finsert” message=”” highlight=”” provider=”manual”/]

Retrieve Records

ابتدا برای ساخت کنترلر StudViewController از دستور زیر استفاده می کنیم.

[pastacode lang=”markup” manual=”php%20artisan%20make%3Acontroller%20StudViewController%20–plain%0A” message=”” highlight=”” provider=”manual”/]

بعد از ایجاد کنترلر فایل StudViewController.php بصورت زیر ویرایش کنید.

[pastacode lang=”php” manual=”%3C%3Fphp%0A%0Anamespace%20App%5CHttp%5CControllers%3B%0A%0Ause%20Illuminate%5CHttp%5CRequest%3B%0Ause%20DB%3B%0Ause%20App%5CHttp%5CRequests%3B%0Ause%20App%5CHttp%5CControllers%5CController%3B%0A%0Aclass%20StudViewController%20extends%20Controller%20%7B%0A%20%20%20public%20function%20index()%20%7B%0A%20%20%20%20%20%20%24users%20%3D%20DB%3A%3Aselect(‘select%20*%20from%20student’)%3B%0A%20%20%20%20%20%20return%20view(‘stud_view’%2C%5B’users’%3D%3E%24users%5D)%3B%0A%20%20%20%7D%0A%7D” message=”app/Http/Controllers/StudViewController.php” highlight=”” provider=”manual”/]

برای درست کردن View مورد نیاز یک فایل به نام stud_view.blade.php بصورت زیر در دایرکتوری resources/views ایجاد می کنیم.

[pastacode lang=”php” manual=”%3Chtml%3E%0A%20%20%20%0A%20%20%20%3Chead%3E%0A%20%20%20%20%20%20%3Ctitle%3EView%20Student%20Records%3C%2Ftitle%3E%0A%20%20%20%3C%2Fhead%3E%0A%20%20%20%0A%20%20%20%3Cbody%3E%0A%20%20%20%20%20%20%3Ctable%20border%20%3D%201%3E%0A%20%20%20%20%20%20%20%20%20%3Ctr%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3EID%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3EName%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%3C%2Ftr%3E%0A%20%20%20%20%20%20%20%20%20%40foreach%20(%24users%20as%20%24user)%0A%20%20%20%20%20%20%20%20%20%3Ctr%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3E%7B%7B%20%24user-%3Eid%20%7D%7D%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3E%7B%7B%20%24user-%3Ename%20%7D%7D%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%3C%2Ftr%3E%0A%20%20%20%20%20%20%20%20%20%40endforeach%0A%20%20%20%20%20%20%3C%2Ftable%3E%0A%20%20%20%3C%2Fbody%3E%0A%3C%2Fhtml%3E” message=”resources/views/ stud_view.blade.php” highlight=”” provider=”manual”/]

فایل routes.php را بصورت زیر ویرایش کنید.

[pastacode lang=”php” manual=”Route%3A%3Aget(‘view-records’%2C’StudViewController%40index’)%3B%0A” message=”app/Http/routes.php” highlight=”” provider=”manual”/]

به آدرس زیر مراجعه کنید، حال می توانید ورود دیتا به پایگاه داده خود را تست نمایید.

[pastacode lang=”markup” manual=”http%3A%2F%2Flocalhost%3A8000%2Fview-records” message=”” highlight=”” provider=”manual”/]

Update Records

ابتدا برای ساخت کنترلر StudViewController از دستور زیر استفاده می کنیم.

[pastacode lang=”markup” manual=”php%20artisan%20make%3Acontroller%20StudUpdateController%20–plain%0A” message=”” highlight=”” provider=”manual”/]

بعد از ایجاد کنترلر فایل StudUpdateController.php بصورت زیر ویرایش کنید.

[pastacode lang=”php” manual=”%3C%3Fphp%0A%0Anamespace%20App%5CHttp%5CControllers%3B%0A%0Ause%20Illuminate%5CHttp%5CRequest%3B%0Ause%20DB%3B%0Ause%20App%5CHttp%5CRequests%3B%0Ause%20App%5CHttp%5CControllers%5CController%3B%0A%0Aclass%20StudUpdateController%20extends%20Controller%20%7B%0A%20%20%20public%20function%20index()%20%7B%0A%20%20%20%20%20%20%24users%20%3D%20DB%3A%3Aselect(‘select%20*%20from%20student’)%3B%0A%20%20%20%20%20%20return%20view(‘stud_edit_view’%2C%5B’users’%3D%3E%24users%5D)%3B%0A%20%20%20%7D%0A%20%20%20public%20function%20show(%24id)%20%7B%0A%20%20%20%20%20%20%24users%20%3D%20DB%3A%3Aselect(‘select%20*%20from%20student%20where%20id%20%3D%20%3F’%2C%5B%24id%5D)%3B%0A%20%20%20%20%20%20return%20view(‘stud_update’%2C%5B’users’%3D%3E%24users%5D)%3B%0A%20%20%20%7D%0A%20%20%20public%20function%20edit(Request%20%24request%2C%24id)%20%7B%0A%20%20%20%20%20%20%24name%20%3D%20%24request-%3Einput(‘stud_name’)%3B%0A%20%20%20%20%20%20DB%3A%3Aupdate(‘update%20student%20set%20name%20%3D%20%3F%20where%20id%20%3D%20%3F’%2C%5B%24name%2C%24id%5D)%3B%0A%20%20%20%20%20%20echo%20%22Record%20updated%20successfully.%3Cbr%2F%3E%22%3B%0A%20%20%20%20%20%20echo%20’%3Ca%20href%20%3D%20%22%2Fedit-records%22%3EClick%20Here%3C%2Fa%3E%20to%20go%20back.’%3B%0A%20%20%20%7D%0A%7D” message=”app/Http/Controllers/StudUpdateController.php” highlight=”” provider=”manual”/]

برای درست کردن View مورد نیاز یک فایل به نام stud_edit_view.blade.php بصورت زیر در دایرکتوری resources/views ایجاد می کنیم.

[pastacode lang=”php” manual=”%3Chtml%3E%0A%20%20%20%3Chead%3E%0A%20%20%20%20%20%20%3Ctitle%3EView%20Student%20Records%3C%2Ftitle%3E%0A%20%20%20%3C%2Fhead%3E%0A%20%20%20%0A%20%20%20%3Cbody%3E%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20%3Ctable%20border%20%3D%20%221%22%3E%0A%20%20%20%20%20%20%20%20%20%3Ctr%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3EID%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3EName%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3EEdit%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%3C%2Ftr%3E%0A%20%20%20%20%20%20%20%20%20%40foreach%20(%24users%20as%20%24user)%0A%20%20%20%20%20%20%20%20%20%3Ctr%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3E%7B%7B%20%24user-%3Eid%20%7D%7D%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3E%7B%7B%20%24user-%3Ename%20%7D%7D%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3E%3Ca%20href%20%3D%20’edit%2F%7B%7B%20%24user-%3Eid%20%7D%7D’%3EEdit%3C%2Fa%3E%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%3C%2Ftr%3E%0A%20%20%20%20%20%20%20%20%20%40endforeach%0A%20%20%20%20%20%20%3C%2Ftable%3E%0A%20%20%20%3C%2Fbody%3E%0A%3C%2Fhtml%3E” message=”resources/views/stud_edit_view.blade.php” highlight=”” provider=”manual”/]

همچنین در قسمت View یک فایل دیگر به نام stud_update.php بصورت زیر در دایرکتوری resources/views ایجاد می کنیم.

[pastacode lang=”markup” manual=”%3Chtml%3E%0A%20%20%20%0A%20%20%20%3Chead%3E%0A%20%20%20%20%20%20%3Ctitle%3EStudent%20Management%20%7C%20Edit%3C%2Ftitle%3E%0A%20%20%20%3C%2Fhead%3E%0A%20%20%20%0A%20%20%20%3Cbody%3E%0A%20%20%20%20%20%20%3Cform%20action%20%3D%20%22%2Fedit%2F%3C%3Fphp%20echo%20%24users%5B0%5D-%3Eid%3B%20%3F%3E%22%20method%20%3D%20%22post%22%3E%0A%20%20%20%20%20%20%20%20%20%3Cinput%20type%20%3D%20%22hidden%22%20name%20%3D%20%22_token%22%20value%20%3D%20%22%3C%3Fphp%20echo%20csrf_token()%3B%20%3F%3E%22%3E%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%3Ctable%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctr%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3EName%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cinput%20type%20%3D%20’text’%20name%20%3D%20’stud_name’%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%20%3D%20’%3C%3Fphp%20echo%24users%5B0%5D-%3Ename%3B%20%3F%3E’%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Ftr%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctr%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%20colspan%20%3D%20’2’%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cinput%20type%20%3D%20’submit’%20value%20%3D%20%22Update%20student%22%20%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Ftr%3E%0A%20%20%20%20%20%20%20%20%20%3C%2Ftable%3E%0A%20%20%20%20%20%20%3C%2Fform%3E%0A%20%20%20%3C%2Fbody%3E%0A%3C%2Fhtml%3E” message=”resources/views/stud_update.php” highlight=”” provider=”manual”/]

فایل routes.php را بصورت زیر ویرایش کنید.

[pastacode lang=”php” manual=”Route%3A%3Aget(‘edit-records’%2C’StudUpdateController%40index’)%3B%0ARoute%3A%3Aget(‘edit%2F%7Bid%7D’%2C’StudUpdateController%40show’)%3B%0ARoute%3A%3Apost(‘edit%2F%7Bid%7D’%2C’StudUpdateController%40edit’)%3B” message=”app/Http/routes.php” highlight=”” provider=”manual”/]

به آدرس زیر مراجعه کنید، حال می توانید ورود دیتا به پایگاه داده خود را تست نمایید.

[pastacode lang=”markup” manual=”http%3A%2F%2Flocalhost%3A8000%2Fedit-records%0A” message=”” highlight=”” provider=”manual”/]

Delete Records

ابتدا برای ساخت کنترلر StudDeleteController از دستور زیر استفاده می کنیم.

[pastacode lang=”markup” manual=”php%20artisan%20make%3Acontroller%20StudDeleteController%20–plain” message=”” highlight=”” provider=”manual”/]

بعد از ایجاد کنترلر فایل StudDeleteController.php بصورت زیر ویرایش کنید.

[pastacode lang=”php” manual=”%3C%3Fphp%0A%0Anamespace%20App%5CHttp%5CControllers%3B%0A%0Ause%20Illuminate%5CHttp%5CRequest%3B%0Ause%20DB%3B%0Ause%20App%5CHttp%5CRequests%3B%0Ause%20App%5CHttp%5CControllers%5CController%3B%0A%0Aclass%20StudDeleteController%20extends%20Controller%20%7B%0A%20%20%20public%20function%20index()%20%7B%0A%20%20%20%20%20%20%24users%20%3D%20DB%3A%3Aselect(‘select%20*%20from%20student’)%3B%0A%20%20%20%20%20%20return%20view(‘stud_delete_view’%2C%5B’users’%3D%3E%24users%5D)%3B%0A%20%20%20%7D%0A%20%20%20public%20function%20destroy(%24id)%20%7B%0A%20%20%20%20%20%20DB%3A%3Adelete(‘delete%20from%20student%20where%20id%20%3D%20%3F’%2C%5B%24id%5D)%3B%0A%20%20%20%20%20%20echo%20%22Record%20deleted%20successfully.%3Cbr%2F%3E%22%3B%0A%20%20%20%20%20%20echo%20’%3Ca%20href%20%3D%20%22%2Fdelete-records%22%3EClick%20Here%3C%2Fa%3E%20to%20go%20back.’%3B%0A%20%20%20%7D%0A%7D” message=”app/Http/Controllers/StudDeleteController.php” highlight=”” provider=”manual”/]

برای درست کردن View مورد نیاز یک فایل به نام stud_delete_view.blade.php بصورت زیر در دایرکتوری resources/views ایجاد می کنیم.

[pastacode lang=”php” manual=”%3Chtml%3E%0A%20%20%20%0A%20%20%20%3Chead%3E%0A%20%20%20%20%20%20%3Ctitle%3EView%20Student%20Records%3C%2Ftitle%3E%0A%20%20%20%3C%2Fhead%3E%0A%20%20%20%0A%20%20%20%3Cbody%3E%0A%20%20%20%20%20%20%3Ctable%20border%20%3D%20%221%22%3E%0A%20%20%20%20%20%20%20%20%20%3Ctr%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3EID%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3EName%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3EEdit%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%3C%2Ftr%3E%0A%20%20%20%20%20%20%20%20%20%40foreach%20(%24users%20as%20%24user)%0A%20%20%20%20%20%20%20%20%20%3Ctr%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3E%7B%7B%20%24user-%3Eid%20%7D%7D%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3E%7B%7B%20%24user-%3Ename%20%7D%7D%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3E%3Ca%20href%20%3D%20’delete%2F%7B%7B%20%24user-%3Eid%20%7D%7D’%3EDelete%3C%2Fa%3E%3C%2Ftd%3E%0A%20%20%20%20%20%20%20%20%20%3C%2Ftr%3E%0A%20%20%20%20%20%20%20%20%20%40endforeach%0A%20%20%20%20%20%20%3C%2Ftable%3E%0A%20%20%20%3C%2Fbody%3E%0A%3C%2Fhtml%3E” message=”resources/views/stud_delete_view.blade.php” highlight=”” provider=”manual”/]

فایل routes.php را بصورت زیر ویرایش کنید.

[pastacode lang=”php” manual=”Route%3A%3Aget(‘delete-records’%2C’StudDeleteController%40index’)%3B%0ARoute%3A%3Aget(‘delete%2F%7Bid%7D’%2C’StudDeleteController%40destroy’)%3B” message=”app/Http/routes.php” highlight=”” provider=”manual”/]

به آدرس زیر مراجعه کنید، حال می توانید ورود دیتا به پایگاه داده خود را تست نمایید.

[pastacode lang=”markup” manual=”http%3A%2F%2Flocalhost%3A8000%2Fdelete-records” message=”” highlight=”” provider=”manual”/]