تخفیف نوروزی پی استور

کد تخفیف: PR1404

شامل تمامی آثار
روز
ساعت
دقیقه
ثانیه

با خرید اشتراک ویژه ، با هزینه بسیار کمتر به فایل های پاورپوینت دسترسی داشته باشید!

تنظیمات دیتابیس در لاراول 6

رابطه یک به یک در لاراول

هزینه سفارش:

۹۹,۰۰۰ تومان

روز
ساعت
دقیقه
ثانیه
دریافت کد تخفیف با گردونه شانس %
تعداد فراگیر
250 نفر
امتیاز کاربران
امتیاز 5.00 از 5

یکی از عناصر اساسی فریم ورک لاراول، الوکوئنت Eloquent ORM  است. لاراول برای برقرار کردن رابطه بین دو یا چند جدول در دیتابیس از Eloquent ORM استفاده می کند. این فریم ورک محبوب برای ایجاد ارتباط بین مدل های الوکوئنت، روش های کابر پسند بسیاری فراهم نموده است. در این جلسه یکی از این رابطه ها بنام رابطه یک به یک در لاراول با یک مثال عملی، مورد مطالعه قرار می گیرد.

آموزش رابطه یک به یک در لاراول One To One

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

 برای مثال فرض کنید جدولی داریم به نام users که برای احراز هویت کاربران، به کار می رود. می خواهیم اطلاعات دیگر کاربر از قبیل تاریخ تولد، بیو و آدرس شبکه های اجتماعی را نیز ذخیره کنیم. می توانیم این اطلاعات را در همان جدول users در داخل ۴ ستون دیگر ذخیره کنیم. اما با این کار جدول users شلوغ و اندکی کثیف خواهد شد.

برای تمیز نگه داشتن جداول، می خواهیم نام و کلمه عبور و ایمیل کاربران را در جدول users  و اطلاعات پروفایل کاربر را در جدولی دیگر بنام profiles ذخیره کنیم.

می دانیم که باید هر کاربر تنها یک profile  خواهد داشت و هر profile تنها متعلق به یک user  خواهد بود.

ایجاد مدل ها و جداول

می دانیم که هنگام نصب لاراول، مدل User و مایگریشن users بصورت اتوماتیک در پروژه ایجاد می شود و ما فقط نیاز به ایجاد مدل Profile و مایگریشن اش می باشیم. می توانیم با یک دستور هر دو را بسازیم :

php artisan make:model Profile -m

سپس برای ایجاد رابطه یک به یک migration مربوط به جدول profiles را هم باز می کنیم و اینگونه تغییر می دهیم :

public function up()
{
    Schema::create('profiles', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->bigInteger('user_id')->unsigned()->index();
        $table->date('dob');
        $table->text('bio');
        $table->string('instagram');
        $table->timestamps();

        $table->foreign('user_id')->references('id')->on('users')
              ->onDelete('cascade')->onUpdate('cascade');
    });
}

کلید خارجی یا foreign key

در خط پنجم اقدام به تعریف کلید خارجی یا foreign key می کنیم. کلید خارجی وظیفه اتصال و ارتباط دو جدول را به عهده دارد و هنگام ثبت یک profile جدید، مقدار این کلید دقیقا برابر id  مربوط به  user مربوط به این   profileخواهد بود. نوع این کلید باید با id  جدول users مطابقت داشته باشد زیرا این کلید به آن id  اشاره می کند. مثلا در این مورد چون نوع id  در جدول users برابر با bigIncrements بود، نوع کلید خارجی را هم bigInteger قرار دادیم.

در خطوط آخر دقیقا اشاره کردیم که کلید خارجی مربوط به کدام ستون از کدام جدول است :

$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade')
->onUpdate('cascade');

عبارت های OnDelete هم اشاره می کنند که هنگام حذف یک user پروفایلش نیز از جدول profiles حذف گردد.

سپس دستور زیر :

php artisan migrate

بررسی رابطه یک به یک در phpmyadmin :

اگر در phpmyadmin روی دیتابیس تان کلیک کرده و به سربرگ یا همان منوی Designer  بروید با شکل زیر مواجه خواهید شد :

این شکل نشانگر ارتباط بین دو جدول و نیز ارتباط ستون id از جدول users  و ستون user_id از جدول profiles است. درواقع این ارتباط زمانی ایجاد شد که کلید خارجی تعریف کردیم. این شکل به خوبی نشان می دهد که user_id همان id در است.

تعریف رابطه یک به یک :

در  مدل User  متد زیر را تعریف می کنیم  :

public function profile()
{
    return $this->hasOne(Profile::class);
}
</pre>
در مدل Profile  :
<pre class="lang:php decode:true ">class Profile extends Model
{

   protected $fillable = ['dob', 'bio' , 'instagram'];


    public function user()
    {
        return $this-&gt;belongsTo(User::class);
    }
}

فراخوانی اطلاعات از رابطه OneToOne لاراول

حال که رابطه بین دو جدول را برقرار کرده اید می توانید به اطلاعات پروفابل هر کاربر با صدا زدن متد profile البته بدن پرانتز دسترسی پیدا کنید :

$user = User::find(1);
$userInsta = $user-&gt;profile-&gt;instagram;
$userBio = $user-&gt;profile-&gt;bio;

 لاراول برای فراخوانی پروفایل کاربر، به جدول profiles سر زده و در ستون user_id دنبال عددی برابر id  کاربر خواهد گشت.

ایجاد رابطه یک به یک برای user

برای ایجاد پروفایل برای یک کاربر می توان از دو روش استفاده کرد :

روش اول : استفاده از متد save()

$profile = new Profile();
$profile-&gt;dob = '1987-01-20';
$profile-&gt;bio = 'Laravel Student';
$profile-&gt;instagram = 'laraveltop';

$user = User::first();
$user-&gt;profile()-&gt;save($profile);

روش دوم : استفاده از متد create()

$user = \App\User::first();
$user-&gt;profile()-&gt;create([
    'dob' =&gt; '2000-11-03',
    'bio' =&gt; 'I am Laravel Student',
    'instagram' =&gt; 'laraveltop'
]);

حذف رابطه یک به یک از user

حذف پروفایل یک کاربر همانند ایجاد ارتباط برای آن است. با این تفاوت که به جای متد create از متد delete استفاده خواهیم کرد :

$user = User::first();
$user-&gt;profile()-&gt;delete();

حال اگر dd بگیریم :

dd(User::first()->profile);

عبارت null در صفحه را مشاهده خواهید نمود.

نکته

چون هنگام تعریف کلید خارجی از عبارت onDelete(‘cascade’)  استفاده کردیم، هنگام حذف یک کاربر، پروفایل آن نیز از جدول profiles  حذف خواهد شد.

 

برای مشاهده جلسه چهاردهم (رابطه یک به چند در لاراول) کلیک کنید.


مشخصات فیلم آموزشی

نام اثر : فیلم آموزش صفر تا صد لاراول – جلسه سیزدهم: رابطه یک به یک در لاراول

 مدرس : مهندس سالار عباپور

مدت زمان : 37 دقیقه

زبان آموزش : فارسی

حجم فایل : یک فایل با حجم ۱۱۰ مگا بایت

فرمت ویدئو : MP4 با کیفیت بالا


پیش نمایش

درباره محصول

فیلم آموزش صفر تا صد لاراول – جلسه سیزدهم: رابطه یک به یک در لاراول ۶ محصولی است که در این پست به آن پرداخته شده است.  در این آموزش به توضیح و معرفی رابطه ها در لاراول پرداخته شده است است. این محصول بصورت کامل توسط گروه پشتیبانی پی استور تست و بازبینی شده است. محصول دارای نشان تضمین کیفیت پی استور می باشد.

مشاهده بیشتر

 سالار عباپور

فارغ التحصیل رشته مهندسی برق

فارغ التحصیل رشته مهندسی برق و مدرس دوره های طراحی سایت - ایشان در زمینه طراحی سایت با زبان های برنامه نویسی PHP و فریمورک لاراول Laravel فعال هستند و همچنین یکی از تحلیل گران خبره در حوزه بازارهای مالی بین المللی و بورس هستند.

مشخصات تکمیلی

نام اثر: رابطه یک به یک در لاراول
نوع اثر:
سالار عباپور

راهنمای خرید و ثبت سفارش

تصویر مراحل خرید از پی استور

اگر در مورد این اثر یا نحوه تهیه آن سوالی دارید؟
  • با شماره تلفن واحد مخاطبین 44225175 (پیش شماره 041) تماس بگیرید. – تمام ساعات اداری
  • با ما مکاتبه ایمیلی داشته باشید (این لینک). – تمام ساعات

توجه: کیفیت این محصول توسط پی استور تضمین شده و در صورت عدم رضایت از محصول، به انتخاب شما:

تصویر و لوگوی گارانتی

نظرات

1 نظر|5.00 (میانگین امتیاز کاربران)

  1. آواتار مدیریت و پشتیبانی

    مدیریت و پشتیبانی

    نظرات و پیشنهادات خود را با ما در میان بگذارید.

دیدگاه خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شناسه اثر: 6668 دسته‌بندی موضوعی: برچسب:

هزینه سفارش:

۹۹,۰۰۰ تومان

دریافت کد تخفیف %