'required|exists:transaction_types,id', 'transaction_currency_id' => 'required|exists:transaction_currencies,id', 'description' => 'required|between:1,255', 'date' => 'required|date', 'completed' => 'required|between:0,1' ]; /** * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany */ public function budgets() { return $this->belongsToMany( 'Budget', 'component_transaction_journal', 'transaction_journal_id', 'component_id' ); } /** * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany */ public function categories() { return $this->belongsToMany( 'Category', 'component_transaction_journal', 'transaction_journal_id', 'component_id' ); } /** * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany */ public function components() { return $this->belongsToMany('Component'); } /** * @return array */ public function getDates() { return ['created_at', 'updated_at', 'date']; } /** * @param $query * @param Carbon $date * * @return mixed */ public function scopeAfter($query, Carbon $date) { return $query->where('date', '>=', $date->format('Y-m-d')); } /** * @param $query * @param Carbon $date * * @return mixed */ public function scopeBefore($query, Carbon $date) { return $query->where('date', '<=', $date->format('Y-m-d')); } /** * @param $query * @param Carbon $date * * @return mixed */ public function scopeOnDate($query, Carbon $date) { return $query->where('date', '=', $date->format('Y-m-d')); } /** * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function transactionCurrency() { return $this->belongsTo('TransactionCurrency'); } /** * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function transactionType() { return $this->belongsTo('TransactionType'); } /** * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function transactions() { return $this->hasMany('Transaction'); } /** * User * * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function user() { return $this->belongsTo('User'); } }