2017-09-11 15 views
0

私はcontroller1.php、controller2.php、およびcontroller3.phpに別々のvalidate_date関数を持っています。 DateTimeHelper.phpにグローバル機能を作成して、この機能のために各コントローラに機能を作成する代わりに日付を検証したいと考えています。私の問題は、私は異なるコントローラで異なる機能を使用していますということです、私は検証するためにグローバルな機能を必要とするDateTimeHelper.phpにグローバルvalidate_date関数を作成して、すべてのlaravel.phpコントローラでその関数を使用します

private function validate_date($date) 
{ 
    if ($this->check_field($date) && $date !== 'Invalid date') { 
     return true; 
    } 

    return false; 
} 

:&コントローラ2 &

private function validate_date($date) 
{ 
    $split_date = explode('/', $date); 
    if (count($split_date) == 3) { 
     return checkdate($split_date [0], $split_date [1], $split_date [2]); 
    } 

    return false; 
} 

コントローラ3:私はバックエンド Controller1でLaravelを使用していますこの機能のために各コントローラに機能を作成する代わりに日付を使用します。

+1

ご質問はありますか? –

+0

それを行います。機能が異なる場合は、2つの異なる機能を作成します。 – aynber

+0

私はこのフレームワークのかなり新しいです。 DateTimeHelper.phpでグローバル関数を作成すると、他のコントローラでその関数にアクセスする方法を教えてください – Ajay

答えて

1

次のような方法は、おそらくあなたが探しているものでしょう。

は、(新)ヘルパーフォルダ内DateTimeHelper.phpと呼ばれる新しいファイルを作成します。最終パスはapp \ Helpers \ DateTimeHelper.phpになります。

DateTimeHelper.phpの内容は次のようになります。今、あなたはクラスを使用したいコントローラを編集

<?php 
namespace App\Helpers; 

class DateTimeHelper { 
    public function validate() 
    { 
    } 

    public function checkField() 
    { 
    } 
} 

、このようLaravelのAutomatic Injectionをproctedプロパティ$ dateTimeHelperを追加して使用します。

<?php 

namespace App\Http\Controllers; 

use App\Helpers\DateTimeHelper; 

class UserController extends Controller 
{ 
    protected $dateTimeHelper; 

    /** 
    * Create a new controller instance. 
    * 
    * @param DateTimeHelper $dateTimeHelper 
    * @return void 
    */ 
    public function __construct(DateTimeHelper $dateTimeHelper) 
    { 
     $this->dateTimeHelper = $dateTimeHelper; 
    } 

    public function show($date) 
    { 
     return $this->dateTimeHelper->validate($date); 
    } 
} 

これで問題は解決するはずですが、Laravel validationを調べることをおすすめします。

+0

ありがとうございます。それは助けた – Ajay

+0

あなたのために働く嬉しい。 laravelの初心者で、リクエストの検証が目的の場合は、laravel組み込み検証の一部を使用することをおすすめします。私の答えの一番下にリンクがあります。 幸運にも:) –

-1

ヘルパー関数の代わりにサービスクラスについて考え、システムからの可能なすべての日付検証をこのサービスクラスに入れますか?

関連する問題