به نام و یاد خدا
سلام عرض می کنم خدمت کاربران سایت دانشجویان کامپیوتر امیدوارم سربلند و پیروز باشید.
این فریم ورک در سال های 2014 و همچنین 2013 به عنوان محبوب ترین فریم ورک php مورد استفاده قرار گرفته است. همچنین طبق آمار این فریم ورک در سال 2015 هم به عنوان برترین فریم ورک بین فریم ورک های php معرفی گردیده است. همچنین در سال 2016 آمار نشان می دهد که این فریم ورک جای خوبی در بین فریم ورک های php پیدا کرده است. و با اختلاف فاحشی از مابقی فریم ورک ها فاصله گرفته است.
خوب دیگه وقت آن رسیده که دلیل اصلی که این فریم ورک به این شهرت و محبوبیت رسیده را بیان کنم. راستش این فریم ورک سن بالایی دارد و خیلی زمان زیادی از پیدایش آن گذشته است. در سال های ابتدایی که این فریم ورک معرفی و منتشر شد استفاده از composer در دستور کارآن قرار نداشت و هیچ خبری از composer نبود و زیاد مورد توجه قرار نگرفت تا این که بعد از گذشت مدتی با اضافه کردن composer به فریم ورک لاراول این فریم ورک پیشرفت به سزایی کرد و به یکباره در صدر فریم ورک های php قرار گرفت. Composer با قدرتی که به فریم ورک لاراول داد کنار قدرت بالای کد نویسی و سرعت بالایی که داشت به تمام نیاز کاربران خود جواب داد و به این محبوبیت و شهرت رسید.
قدرت بی نظر لاراول و استفاده زیاد از این فریم ورک این فریم ورک را خیلی خیلی سرتر از دیگر فریم ورک های php کرده است.
نکته قابل توجه استفاده از این فریم ورک در ایران می باشد. طبق بررسی های انجام شده پرکاربرد ترین فریم ورک در بین فریم ورک های php در ایران هم همین فریم ورک لاراول می باشد. و در ایران نیز از جای خوبی برخوردار می باشد.
یازدهمین قسمت از آموزش فریم ورک لاراول:
در این قسمت از آموزش فریم ورک لاراول به کار با دیتابیس و Eloquent می پردازیم. در لاراول می توانیم با استفاده از Eloquent که پیاده سازی شده از ActivRecord است. خیلی ساده تر با دیتابیس کار کنیم. در این روش هر جدول در دیتابیس با یک کلاس Model در ارتباط است.
برای شروع کار با Eloquent باید ابتدا یک کلاس مدل از جدول ایجاد کنیم. کلاس های مدل را داخل پوشه App قرار میدهیم. با تایپ این دستور در ترمینال می توانیم یک مدل ایجاد کنیم:
php artisan make:model User
نام مدل را همیشه به صورت PascalCase بنويسيد. به طور پيش فرض مدل با جدولي که مشابه نام مدل است اما فقط یک s به آخر اضافه شده متناظر است. مثلا مدل User با جدول users در دیتابیس مرتبط است. کلاس ایجاد شده باید محتوای آن به شکل زیر باشد:
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model {}
در صورتی که نام جدولی که با کلاس مدل از قانونی که در بالا گفتم تبعیت نمیکند میتوانید در کلاس
با استفاده از پراپرتی table نام مورد نظر را ست کنید.
class User extends Model {
protected $table = ‘my_users’;
public $timestamps = false;
}
همچنین در جداول باید دو ستون تاریخ و زمان به نام های created_at , updated_at وجود داشته باشند که هنگام ایجاد رکورد یا به روزرسانی آن مقداردهی می شوند اما شما می توانید با false قرار دادن پراپرتی timestamps از ایجاد این ستون ها در جدول صرف نظر کنید.
حالا می توانیم به راحتی از کلاس مدل برای عملیات های دیتابیس استفاده کنیم. در Eloquent از متد های Query Builder هم استفاده کنید.
برای بازیابی کلیه رکوردها از متد all استفاده می کنیم.
$users = User::all();
رکوردی را با داشتن id آن می توانیم با متد find بازيابي کنيم:
$user = User::find(1);
var_dump($user->name);
درصورتی که هنگام بازیابی رکوردها مقداری یافت شد و خواستیم یک خطای استثناء تولید شود کلمه OrFail را به انتهای متد موردنظر اضافه میکنیم:
$model = User::findOrFail(1);
$model = User::where(‘votes’, ‘>’, 100)->firstOrFail();
درج کردن با Eloquent
ابتدا یک شی از کلاس مدل ایجاد میکنیم و سپس با استفاده از شی ایجاد شده attribute هاي مدل که همان نام ستونهای جدول هستند را با مقدار جدید مقداردهی میکنیم و سپس با صدازدن متد save رکورد جدید را ایجاد میکنیم.
$user = new User;
$user->name = ‘John’;
$user->save();
$insertedId = $user->id;
بعد از درج هم میتوانیم به id اختصاص داده شده به این رکورد دسترسی داشته باشیم.
همچنین می توانیم با استفاده از متد create یک رکورد جدید را به جدول اضافه کنیم که به این روش mass-assignment گفته ميشود که البته بايستي در کلاس مدل يک پراپرتي protected به نام guarded ایجاد کنیم که یک لیست سیاه می باشد و اجازه تغییر فیلدهای موردنظر را به کاربر نمیدهد. پراپرتی fillable برعکس guarded است و یک لیست سفید برای عملیات mass-assignment ایجاد می کند.
// Create a new user in the database…
$user = User::create([‘name’ => ‘John’]);
// Retrieve the user by the attributes, or create it if it doesn’t exist…
$user = User::firstOrCreate([‘name’ => ‘John’]);
// Retrieve the user by the attributes, or instantiate a new instance…
$user = User::firstOrNew([‘name’ => ‘John’]);
همچنین می توانیم از متدهای جادویی هم استفاده کنیم که مثلا در مثال دوم رکوردی را با این مقدار
بازیابی کند و اگر وجود نداشت آن را ایجاد کند.
به روزرسانی رکوردها
برای آپدیت هم مشابه درج کردن عمل میکنیم فقط با این تفاوت که به جای ایجاد شی از کلاس مدل باید رکورد مورد نظر را ابتدا بازیابی کنید. مثلا در مثال زیر رکورد با id برابر 1 را بازیابی کرده و سپس فیلد Email را با مقدار جدیدی آپدیت میکند:
$user = User::find(1);
$user->email = ‘john@foo.com’;
$user->save();
حذف رکوردها
با استفاده ازمتد delete می توانید رکورد بازیابی شده را به راحتی حذف کنید.
$user = User::find(1);
$user->delete();
همچنین روش آسانتر استفاده از متد destroy است که id رکورد را به ان میدهیم. در صورتی که تعداد id ها بیش از یکی بود هم می توانید در آرایه قرار دهید و به عنوان پارامتر به متد دهید و یا اینکه هرکدام را با ویرگول ازهم جدا کنید.
User::destroy(1);
User::destroy([1, 2, 3]);
User::destroy(1, 2, 3);
برای این که بهتر و کاربردی تر با این مبحث آشنا شوید حتما ویدئو این قسمت را تماشا کنید.
ویدئو این قسمت را می توانید به صورت آنلاین مشاهده نمایید یا ویدئو را با کیفیت اصلی دانلود کنید.
در صورتی که نتوانستید ویدئو را مشاهده کنید بارکد زیر را اسکن کنید.
اگه می خواهید این فریم ورک را خوب یاد بگیرید این دوره را از دست ندهید چون قراره از پایه این دوره آموزش داده بشه و از سطح مقدماتی شروع و تا سطح پیشرفته پیش خواهیم رفت.
امیدوارم این آموزش ها رو از دست ندید.
موفق و پیروز باشید.
[…] قسمت یازدهم آموزش فریم ورک لاراول […]
[…] قسمت یازدهم آموزش فریم ورک لاراول […]
[…] قسمت یازدهم آموزش فریم ورک لاراول […]
[…] قسمت یازدهم آموزش فریم ورک لاراول […]
[…] قسمت یازدهم آموزش فریم ورک لاراول […]
[…] قسمت یازدهم آموزش فریم ورک لاراول […]
[…] قسمت یازدهم آموزش فریم ورک لاراول […]
[…] قسمت یازدهم آموزش فریم ورک لاراول […]
[…] قسمت یازدهم آموزش فریم ورک لاراول […]
سلام خسته نباشید اگه بخوام تو هر رکورد به جز عکس یه فایل هم تو دیتابیسم ذخیره شه چیکار باید بکنم
با سلام و درود
نحوه آپلود در لاراول را به صورت کامل توضیح داده ام- حتی برای فایل هایی که آپلود می کنیم محدودیت هم تعریف کردیم و آپلود کردن رو به صورت کامل بیان کردیم. شما می تونید با این آموزش ها فایل مورد نظر را روی هاست خودتون دانلود و لینک دسترسی به اون فایل رو در فیلد مورد نظر در دیتابیس ذخیره کنید تا بتوانید به فایلی که آپلود کرده اید دسترسی پیدا کنید.
اگر خود فایل رو قصد دارید در بانک اطلاعاتی ذخیره کنید کار زیاد استاندارد و حرفه ای نیست چون با آپلود چندین فایل حجم دیتابیس به صورت باور نکردنی رشد می کنه و در جابجایی سایت تا تغییر و ویرایش سایت بسیار کارتون سخت میشه.
کلا ذخیره فایل در دیتابیس چیز خیلی نامعقولی هست.
موفق باشید