ساختن url با استفاده از Eloquent در لاراول

۲۸ فروردین ۱۳۹۷

طراحی سایت

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

اگر بخواهیم کار بالا را با Eloquent انجام دهیم و در مدل این ارسال پارامتر را روی لینک انجام دهیم به شکل زیر می توان عمل کرد:

Eloquent Only


<?php

namespace App;

class User {

  protected $appends = [
    'url'
  ];

  public function getUrlAttribute()
  {
    return route('users.show', $this);
  }
}

سپس در view شما به شکل زیر لینک را نمایش می دهید:

همانطور که می بینید کد بالا فوق العاده تمیز و حرفه ای است.

Eloquent with URL Presenter

حالا در اینجا می خواهیم چندین مسیر را با استفاده از Eloquent مسیردهی کنیم:


<?php

namespace App;

use App\Presenters\User\UrlPresenter;

class User {

  protected $appends = [
    'url'
  ];

  public function getUrlAttribute()
  {
    return new UrlPresenter($this);
  }
}

<?php

namespace App\Presenters\User;

use App\User;

class UrlPresenter {

    protected $user;

    public function __construct(User $user)
    {
        $this->user = $user;
    }

    public function __get($key)
    {
        if(method_exists($this, $key))
        {
            return $this->$key();
        }

        return $this->$key;
    }

    public function delete()
    {
        return route('users.delete', $this->user);
    }

    public function edit()
    {
        return route('users.edit', $this->user);
    }

    public function show()
    {
        return route('users.show', $this->user);
    }

    public function update()
    {
        return route('users.update', $this->user);
    }
}

حالا به شکل زیر لینکهایمان را نمایش میدهیم:

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

 نویسنده:حمید شاه محمدی
 تعداد مشاهده خبر:(608)
 هر روز از مقاله های جدید طراحی سایت در کانال تلگرام ما با خبر شوید

 میانگین امتیازات:
 
  تعداد رای دهندگان: {{ count }}
نظرات:

{{ x }}
{{ alert }}

نویسنده:{{ com.name }}
{{ com.body }}
{{ com.created_at }}