ورود / ثبت نام سبد خرید 0
فریمورک لاراول کار با پایگاه داده را بسیار آسانتر میکند. در حال حاضر لاراول از 4 پایگاه داده ی زیر بصورت رسمی پشتیبانی میکند.
برای نوشتن کوئری پایگاه داده در فریمورک لاراول میتوانید از زبان SQL خام ، از query builder یا Eloquent ORM استفاده کنید.
برای درک بهتر موضوع CRUD یعنی create , read , update و delete در لاراول را در مثالی برای مدیریت دانش آموزان آورده ایم.
تنظیمات پایگاه داده را در مسیر config/database.php انجام دهید و یک دیتابیس به نام college بسازید که ساختار MySQL آن به شکل تصویر زیر خواهد بود.
نام پایگاه داده : college
نام جدول : student
بعد از اینکه جدول student ساخته میشود مفاهیم اضافه کردن داده به جدول دیتابیس ، حذف کردن داده از جدول دیتابیس ، ویرایش کردن داده ای در دیتابیس و در نهایت فراخوانی اطلاعات از جدول دیتابیس در لاراول را آموزش خواهیم داد.
پس 4 عملیات گفته شده را بصورت جداگانه در زیر انجام میدهیم و آنها را توضیح میدهیم تا بصورت کامل نحوه ی مدیریت دیتابیس در لاراول را یاد بگیرید.
برای insert کردن داده ها یا وارد کردن داده های جدید به پایگاه داده در فریمورک لاراول از متود insert مربوط به DB facade استفاده میشود.
نحوه ی کدنویسی insert کردن داده ها در دیتابیس در زیر آمده است.
مثال
قدم 1 - دستور زیر را در ترمینال اجرا کنید تا یک کنترلر جدید به نام StudInsertController ساخته شود.
php artisan make:controller StudInsertController --plain
قدم 2 - بعد از اجرای موفق دستور بالا نتیجه باید به شکل زیر باشد.
قدم 3 - کدهای زیر را در مسیر 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.'; } }
قدم 4 - یک فایل view در بسازید به نام و مسیر 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>
قدم 5 - فایل route های فریمورک لاراول خود را باز کنید و کدهای زیر را به آن اضافه کنید.
Route::get('insert','StudInsertController@insertform'); Route::post('create','StudInsertController@insert');
قدم 6 - از طریق مرورگر به آدرس url زیر مراجعه کنید تا عمل insert در پایگاه داده انجام شود.
http://localhost:8000/insert
قدم 7 - نتیجه ی نهایی باید مشابه تصویر زیر باشد.
اتمام بخش insert کردن داده ها در دیتابیس فریمورک لاراول
بعد از انجام تنظیمات صحیح پایگاه داده در فریمورک لاراول ما میتوانیم توسط DB facade و متود select به داده های ذخیره سازی شده در پایگاه داده دسترسی داشته باشیم و آنها را واکشی کنیم.
در جدول زیر تشریح سینتکس استفاده از این متود گفته شده است.
قدم 1 - دستورات زیر را در کامند پروم و یا ترمینال اجرا کنید تا یک کنترلر به نام StudViewController ساخته شود.
php artisan make:controller StudViewController --plain
قدم 2 - بعد از اجرای دستور مرحله ی یک بصورت موافقیت آمیز باید نتیجه مشابه تصویر زیر باشد.
قدم 3 - کدهای زیر را به مسیر 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]); } }
قدم 4 - یک فایل view بسازید و در مسیر 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>
قدم 5 - فایل route های فریمورک لاراول خود را باز کنید و خط زیر را به فایل روت لاراول خود اضافه کنید.
Route::get('view-records','StudViewController@index');
قدم 6 - برای دیدن نتیجه ی کار به url زیر مراجعه کنید.
http://localhost:8000/view-records
قدم 7 - نتیجه باید به شکل تصویر زیر باشد که مشاهده میکنید.
اتمام بخش select کردن داده های دیتابیس در فریمورک لاراول
در فریمورک لاراول ما میتوانیم داده ها را بروزرسانی کنیم برای این کار از DB facade و متود update استفاده میکنیم. تشریح سینتکس update کردن داده ها در جدول زیر آمده است.
مثال زیر را برای درک موضوع update کردن داده های دیتابیس در نظر بگیرید.
قدم 1 - دستور زیر را در ترمینال یا کامند پرومپ اجرا کنید تا یک کنترلر جدید به نام StudViewController ساخته شود.
php artisan make:controller StudUpdateController --plain
قدم 2 - بعد از اجرا کردن دستور بالا در ترمینال بصورت موفقیت امیز نتیجه باید مشابه تصویر زیر باشد.
قدم 3 - کدهای زیر را کپی کنید و در مسیر فایل 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.'; } }
قدم 4 - یک فایل view جدید بسازید که در مسیر 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>
قدم 5 - یک فایل view دیگری با نام و مسیر 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>
قدم 6 - فایل route های فریمورک لاراول خود را باز کنید و کدهای زیر را درون آن بنویسید
Route::get('edit-records','StudUpdateController@index'); Route::get('edit/{id}','StudUpdateController@show'); Route::post('edit/{id}','StudUpdateController@edit');
قدم 7 - از طریق مرورگر به مسیر url زیر مراجعه کنید.
http://localhost:8000/edit-records
قدم 8 - نتیجه در مرورگر شما باید به شکل تصویر زیر باشد.
قدم 9 - روی لینک Edit هر یک از فیلد های نمایش داده شده در مرورگر کلیک کنید و در این صورت میتوانید آن رکورد خاص را ویرایش کنید.
قدم 10 - بعد از کلیک کردن روی Edit فرمی مشابه تصویر زیر برای شما نمایش داده میشود که یک فرم ویرایش است و بعد از تغییرات روی Update کلیک کنید.
قدم 11 - بعد از ادیت شدن داده ها روی دیتابیس در فریمورک لاراول ، نتیجه باید مشابه تصویر زیر باشد.
اتمام بخش edit کردن داده های دیتابیس روی فریمورک لاراول
ما میتوانیم داده ها را از پایگاه داده در فریمورک لاراول با استفاده از DB facade و متود delete پاک کنیم. سینتکس کدنویسی delete در جدول زیر آمده است.
مثال زیر را برای delete کردن داده ها در فریمورک لاراول در نظر داشته باشید.
قدم 1 - دستور زیر را جهت ساختن یک کنترلر جدید به نام StudDeleteController اجرا کنید.
php artisan make:controller StudDeleteController --plain
قدم 2 - بعد از اجرای موفق دستور بالا نتیجه باید مشابه تصویر زیر باشد.
قدم 3 - کدهای زیر را کپی کنید و در مسیر 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.'; } }
قدم 4 - یک فایل view در مسیر 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>
Route::get('delete-records','StudDeleteController@index'); Route::get('delete/{id}','StudDeleteController@destroy');
قدم 6 - بعد باید به آدرس تعریف شده در route مراجعه کنید که در زیر آمده است.
http://localhost:8000/delete-records
نتیجه در مرورگر باید مشابه تصویر زیر باشد.
قدم 7 - بعد از کلیک کردن روی Delete نتیجه باید مشابه تصویر زیر باشد و پیام زیر به شما نمایش داده شود.
قدم 8 - در تصویر بالا و نتیجه ی مشاهده شده در مرورگر خود یک لینک به نام Click Here میبینید که اگر روی آن کلیک کنید به لیست ریکورد های دیتابیس برمیگردیم و مورد انتخاب شده از لیست پاکسازی شده است. تصویر زیر را ببینید.
اتمام
محصولات برگزیده مناسب شما