2016-11-11 91 views

回答

5

你可以做什麼:

  1. 創建BaseModel類,並把所有的類似的方法在裏面。然後在所有模型中,而不是Model類擴展這個BaseModel類:

class Profile extends BaseModel

  • ​​3210使用。

  • 創建trait並將其用於所有或部分模型。

  • +1

    感謝您的超快速反應/ T –

    2

    當然,你可以做到這一點。只需簡單地延長Laravel雄辯的模型,像這樣:

    class User extends BaseModel { 
        // 
    } 
    

    這樣你就可以做這樣的事情:

    User::find(1)->isNew() 
    

    use Carbon\Carbon; 
    use Illuminate\Database\Eloquent\Model; 
    
    abstract class BaseModel extends Model 
    { 
        public function isNew() { 
         return $this->created_at->copy()->addWeek()->gt(Carbon::now()); 
        } 
    } 
    

    現在你的模型應該從這個新BaseModel類,而不是延長

    請注意,我也致電copy()方法created_at屬性。這樣你的created_at屬性將被複制,並且不會在一週前被意外添加。

    // Copy an instance of created_at and add 1 week ahead. 
    $this->created_at->copy()->addWeek() 
    

    希望得到這個幫助。