2016-04-11 22 views
0

私はLaravel 5.2を使用しています。私のアプリでは、30分の時間をかけてさまざまなビューで選択ボックスを必要としています。ここでアレイをLaravelに保存するのに最適な場所

は、配列データがどのように見えるかの例です:

[ 
    '00:00' => '00:00', 
    '00:30' => '00:30', 
    '01:00' => '01:00', 

    /* ... etc ... */ 

    '18:00' => '18:00', 
    '18:30' => '18:30', 
    '19:00' => '19:00', 

    /* ... etc ... */ 
] 

もちろん、私は、各ビューを呼び出し、各コントローラでこれを入れたくないが、私はそれを保存するどのような最善の方法を思ったんだけどだろう。これまでのところ、私は次を考えてきました:

1)配列

3)データベースモデルを含む配列

2)アプリ内の設定ファイル/設定を返すヘルパー関数リストを毎回生成)

4(過度のようだ()関数のパフォーマンス上の問題?)

は、誰もがより良い方法を考えるか、上記のいずれかの方法が最善と、なぜだろうこれはお勧めできますか? https://github.com/rappasoft/laravel-5-boilerplate

のApp \プロバイダ\ MacroServiceProvider.php

答えて

0

は、手順は次のとおりです。

1)ファイルのアプリ/ HTTP /ユーティリティを作成します。PHP:

<?php 

namespace App\Http\Utilities; 

class Time 
{ 
    protected static $times = [ 
     '00:00' => '00:00', '00:30' => '00:30', '01:00' => '01:00' 
     /** etc ... **/ 
     '22:30' => '22:30', '23:00' => '23:00', '23:30' => '23:30' 
    ]; 

    public static function all() 
    { 
     return static::$times; 
} 

2)ビューでは、最上部に次の行を追加します

@inject ('times','App\Http\Utilities\Time') 

3)$times::all()現在、必要な限りビュー内で使用することができます。

0

あなたが

LaravelコレクティブLaravelコレクティブパッケージでフォームのマクロを使用することができます質問の私の理解から、これはあなたのように思われるので、View Composersの完璧な状況になります複数のビューおよび/または複数のコントローラメソッドで生成される必要があるいくつかのデータ。

私はこれをやって行く道:あなたの端末でphp artisan make:provider ComposerProviderを実行して

  • スタート。あなたは、このデータを必要とするすべてのビューを一覧表示することができます

    あり
    <?php 
    
    namespace App\Providers; 
    
    use Illuminate\Support\ServiceProvider; 
    
    class ComposerServiceProvider extends ServiceProvider 
    { 
        /** 
        * Bootstrap the application services. 
        * 
        * @return void 
        */ 
        public function boot() 
        { 
         view()->composer(
          [ 
           'view_one' 
           'view_two' 
          ], 'App\Http\ViewComposers\DashboardComposer' 
         ); 
        } 
    
        /** 
        * Register the application services. 
        * 
        * @return void 
        */ 
        public function register() 
        { 
         // 
        } 
    } 
    
  • これは、そのプロバイダがどのように見えることができるものです。

View Composerの外観の例です。名前空間に示されているように、これらのファイルをフォルダapp/Http/ViewComposersに置きます。私はここでhttps://laracasts.com/series/build-project-flyer-with-me/episodes/5

でLaracastsにこれに非常に良い解決策を発見した

<?php 

namespace App\Http\ViewComposers; 

use Illuminate\View\View; 
use Illuminate\Users\Repository as UserRepository; 

class DashboardComposer 
{ 


    public function __construct() 
    { 
    } 

    public function compose(View $view) 
    { 
     $the_variable = 'Hello World'; 
     $data = [ 
      'some_very_important_variable' => $the_variable 
     ]; 

     $view->with($data); 
    } 
} 
0

を参照してくださいhttps://github.com/LaravelCollective/html

素晴らしい例あなたは見つけることができます:

+0

ありがとうございますが、この場合はドロップダウンメニューに値を設定したいだけなので、残念です。しかし、私はこのアプローチがより複雑な状況にどのように役立つかを見ることができます。 – Joseph

関連する問題