فهرست:

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

  • MySQL
  • Postgres
  • SQLite
  • SQL Server

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

CREATE TABLE student (
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)

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

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

Insert Records

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

php artisan make:controller StudInsertController --plain

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

app/Http/Controllers/StudInsertController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class StudInsertController extends Controller {
   public function insertform() {
      return view('stud_create');
   }
	
   public function insert(Request $request) {
      $name = $request->input('stud_name');
      DB::insert('insert into student (name) values(?)',[$name]);
      echo "Record inserted successfully.<br/>";
      echo '<a href = "/insert">Click Here</a> to go back.';
   }
}

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

resources/views/stud_create.php
<html>
   <head>
      <title>Student Management | Add</title>
   </head>

   <body>
      <form action = "/create" method = "post">
         <input type = "hidden" name = "_token" value = "<?php echo csrf_token(); ?>">
         <table>
            <tr>
               <td>Name</td>
               <td><input type='text' name='stud_name' /></td>
            </tr>
            <tr>
               <td colspan = '2'>
                  <input type = 'submit' value = "Add student"/>
               </td>
            </tr>
         </table>
      </form>
      
   </body>
</html>

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

app/Http/routes.php
Route::get('insert','StudInsertController@insertform');
Route::post('create','StudInsertController@insert');

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

http://localhost:8000/insert

Retrieve Records

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

php artisan make:controller StudViewController --plain

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

app/Http/Controllers/StudViewController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class StudViewController extends Controller {
   public function index() {
      $users = DB::select('select * from student');
      return view('stud_view',['users'=>$users]);
   }
}

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

resources/views/ stud_view.blade.php
<html>
   
   <head>
      <title>View Student Records</title>
   </head>
   
   <body>
      <table border = 1>
         <tr>
            <td>ID</td>
            <td>Name</td>
         </tr>
         @foreach ($users as $user)
         <tr>
            <td>{{ $user->id }}</td>
            <td>{{ $user->name }}</td>
         </tr>
         @endforeach
      </table>
   </body>
</html>

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

app/Http/routes.php
Route::get('view-records','StudViewController@index');

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

http://localhost:8000/view-records

Update Records

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

php artisan make:controller StudUpdateController --plain

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

app/Http/Controllers/StudUpdateController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class StudUpdateController extends Controller {
   public function index() {
      $users = DB::select('select * from student');
      return view('stud_edit_view',['users'=>$users]);
   }
   public function show($id) {
      $users = DB::select('select * from student where id = ?',[$id]);
      return view('stud_update',['users'=>$users]);
   }
   public function edit(Request $request,$id) {
      $name = $request->input('stud_name');
      DB::update('update student set name = ? where id = ?',[$name,$id]);
      echo "Record updated successfully.<br/>";
      echo '<a href = "/edit-records">Click Here</a> to go back.';
   }
}

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

resources/views/stud_edit_view.blade.php
<html>
   <head>
      <title>View Student Records</title>
   </head>
   
   <body>
      
      <table border = "1">
         <tr>
            <td>ID</td>
            <td>Name</td>
            <td>Edit</td>
         </tr>
         @foreach ($users as $user)
         <tr>
            <td>{{ $user->id }}</td>
            <td>{{ $user->name }}</td>
            <td><a href = 'edit/{{ $user->id }}'>Edit</a></td>
         </tr>
         @endforeach
      </table>
   </body>
</html>

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

resources/views/stud_update.php
<html>
   
   <head>
      <title>Student Management | Edit</title>
   </head>
   
   <body>
      <form action = "/edit/<?php echo $users[0]->id; ?>" method = "post">
         <input type = "hidden" name = "_token" value = "<?php echo csrf_token(); ?>">
      
         <table>
            <tr>
               <td>Name</td>
               <td>
                  <input type = 'text' name = 'stud_name' 
                     value = '<?php echo$users[0]->name; ?>'/>
               </td>
            </tr>
            <tr>
               <td colspan = '2'>
                  <input type = 'submit' value = "Update student" />
               </td>
            </tr>
         </table>
      </form>
   </body>
</html>

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

app/Http/routes.php
Route::get('edit-records','StudUpdateController@index');
Route::get('edit/{id}','StudUpdateController@show');
Route::post('edit/{id}','StudUpdateController@edit');

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

http://localhost:8000/edit-records

Delete Records

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

php artisan make:controller StudDeleteController --plain

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

app/Http/Controllers/StudDeleteController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class StudDeleteController extends Controller {
   public function index() {
      $users = DB::select('select * from student');
      return view('stud_delete_view',['users'=>$users]);
   }
   public function destroy($id) {
      DB::delete('delete from student where id = ?',[$id]);
      echo "Record deleted successfully.<br/>";
      echo '<a href = "/delete-records">Click Here</a> to go back.';
   }
}

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

resources/views/stud_delete_view.blade.php
<html>
   
   <head>
      <title>View Student Records</title>
   </head>
   
   <body>
      <table border = "1">
         <tr>
            <td>ID</td>
            <td>Name</td>
            <td>Edit</td>
         </tr>
         @foreach ($users as $user)
         <tr>
            <td>{{ $user->id }}</td>
            <td>{{ $user->name }}</td>
            <td><a href = 'delete/{{ $user->id }}'>Delete</a></td>
         </tr>
         @endforeach
      </table>
   </body>
</html>

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

app/Http/routes.php
Route::get('delete-records','StudDeleteController@index');
Route::get('delete/{id}','StudDeleteController@destroy');

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

http://localhost:8000/delete-records