آموزش laravel eloquent قسمت سوم

حمید تیموری 1450 بازدید 1397/07/01
آموزش laravel eloquent قسمت سوم

در قسمت دوم این آموزش مواردی به شما گفته در رابطه با گرفتن اطلاعات از مدل ها!
در این مطلب به بقیه توضیحات دقت کنید:

ذخیره یا درج اطلاعات در مدل:
برای ذخیره کردن یک نمونه از مدل بسازید، و مقدار مورد نظر خودتان به attribute های مدل نسبت دهید و سپس از متد save استفاده کنید.
به صورت زیر:

<?php

namespace App\Http\Controllers;

use App\Article;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class ArticleController extends Controller
{
    /**
     * Create a new flight instance.
     *
     * @param  Request  $request
     * @return Response
     */
    public function store(Request $request)
    {
        // Validate the request...

        $article = new Article;

        $article->title = $request->title;

        $article->save();
    }
}

درمثال بالا، پارامتر title که از http request گرفته شده است را به attribute کلاس Article با نام title نسبت داده شده است.
و سپس متد save صدا زده شده است. زمانی که این متد صدا زده میشود، این رکورد در database دخیره میشود.
فیلد های created_at و updated_at به صورت اتوماتیک پر میشود.

ویرایش اطلاعات:
متد save همچنین برای ویرایش داده ها استفاده میشود، زمانی که شما یه رکوردی که از قبل در دیتابیس وجود داشته را تغییر میدهید و از متد save استفاده میکنید هم رکورد تغییر میکند، همچنین فیلد updated_at به روز میشود.
مثال:

$article = App\Article::find(1);

$article->name = 'New Title';

$article->save();

راه دوم:
شما میتوانید از متد update استفاده کنید و رکورد مورد نظر را ویرایش کنید. در این روش چند نکته وجود دارد.
یکی اینکه برای خطای Mass Assignment رخ ندهد، شما فیلدهایی را که میخواهید از طریق این متد ویرایش شود باید در متغیری به نام $fillable در مدل تعریف کنید

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Article extends Model
{
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = ['title'];
}

متغیر $fillable به این معنی است، که چه فیلدهایی اجازه دارند مستفیما از طرف request پر شوند!
متدهای update و create این قابلیت را دارند که request را بگیرند، و بدون اینکه ما تعیین کنیم، کدام فیلد ساخته یا ویرایش شود، فیلدهایی که در request همنام فیلدهای database هستد را نظیر به نظیر نسبت به هم نسبت دهند اما برای اینکار حتما باید متغیر fillalbe تعیین شود.

$article = App\Article::create($request->all());

// or

$article->update($request->all());

لاراول Eloquent توابع زیادی داره که شما میتونید ازشون استفاده کنید. به زودی توابع رو بهتون آموزش میدم.

همونطور که میبینید، توابع لاراول خیلی ساده هستن، که شما برای مواردی مثل ویرایش و ... به راحتی از آنها استفاده میکنید.

حذف اطلاعات:
برای حذف میتوانید تابع delete را روی نمونه (instance) صدا بزنید:

$article = App\Article::find(1);

$article->delete();

شما همچنین میتوانید از روش های زیر ، یک رکورد مورد نظر ، و یا چندین مورد را حذف کنید، به شرطی که ID یا primaryKey آنها را داشته باشید:

App\Article::destroy(1);

App\Article::destroy(1, 2, 3);

App\Article::destroy([1, 2, 3]);

App\Article::destroy(collect([1, 2, 3]));

حتی میتوانید حین query عملیات حذف را انجام دهید:

$deletedRows = App\َArticle::where('active', 0)->delete();

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

دیگر مقالات
امید کیانی 1705 بازدید 1398/07/18
حمید تیموری 1390 بازدید 1397/12/13
حمید تیموری 2011 بازدید 1397/05/07
حمید تیموری 2572 بازدید 1398/03/02
حمید تیموری 1793 بازدید 1397/10/06


نظرات (0)
هنوز نظری ثبت نشده است
برای ثبت نظر ابتدا وارد سایت شوید