2016-10-01 4 views
0

は、コントローラまたはコマンドからてgetDateFormat()メソッドにアクセスすることが可能ですか?アクセス() - Laravel

私はこのように私のモデルにそれを使用することができます。

public function getCreatedAtAttribute($value) 
    { 
     $format = $this->getDateFormat(); 
     return Carbon::createFromFormat($format, $value, 'UTC')->setTimezone(\Helper::getTimezone()); 
    } 

が、この$format = getDateFormat();のように、私のコントローラまたはコマンドでそれを使用しているとき、私は次のエラーを取得する:

local.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Call to undefined function App\Console\Commands\getDateFormat()'

答えて

0

もちろん、それはモデルクラスの保護されたメソッドです。

/** 
* Get the format for database stored dates. 
* 
* @return string 
*/ 
protected function getDateFormat() 
{ 
    return $this->dateFormat ?: $this->getConnection()->getQueryGrammar()->getDateFormat(); 
} 

、デフォルトでは、それはあなたがカーボンの日付を取得する必要があるので、もしカーボンインスタンスがデフォルトとしてこのフォーマットを使用して、単純に

/** 
* Get the format for database stored dates. 
* 
* @return string 
*/ 
public function getDateFormat() 
{ 
    return 'Y-m-d H:i:s'; 
} 

だ - 単にCarbon::parse($value)を使用する - それは確か形式のこのタイプを認識します。そして(string)Carbon::parse($value)をやって、デフォルトではこのデフォルトの形式の原因で日付を取得します:

/** 
* Format to use for __toString method when type juggling occurs. 
* 
* @var string 
*/ 
protected static $toStringFormat = self::DEFAULT_TO_STRING_FORMAT; 

/** 
* Format the instance as a string using the set format 
* 
* @return string 
*/ 
public function __toString() 
{ 
    return $this->format(static::$toStringFormat); 
} 

は、炭素のマニュアルを参照してください - ->toDateString()のような修飾子の多くは、->toDateTimeString()

+0

スーパー、ありがとう@Silwerclaw – user3489502

0

getDateFormat()ではありませんPHPのネイティブ関数で、ドリューパルでの使用を覚えている場合

so ..

あなたの$値にあなたは、これが分secondeを持つ配列を返しますgetDate()を使用することができ、タイムスタンプを持っている場合...

やあなたの価値はあなたが

public function getCreatedAtAttribute($value) 
    { 
     $date = new DateTime($value); 
     $date->format('Y-m-d H:i:s'); 
     return $date; 

    } 
のような形式で dateTime()を使用することができますタイムスタンプされていない場合

私はこれがあなたを助けてくれることを願っています おはよう

+0

てgetDateFormatは(ある)が利用可能であるLaravelは私のように、あります私は私のコントローラでそれを自分のモデルを使用することはできませんが、と述べました。わからない理由 – user3489502

関連する問題