2016-04-11 19 views
0

Laravel 5.2 kullanıyorum ve uygulamanızın çeşitli farklı görünümlerde yarım saatlik sürelerle seçme kutuları olması gerekiyor. İşte Laravel'de bir diziyi saklamak için en iyi yer

dizi veri nasıl göründüğünü gösteren bir örnek: Açıkçası

[ 
    '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 ... */ 
] 

Her görünümü çağıran her denetleyicisi bu koymak istemiyorum, ama bunu saklamak ne iyi yolu merak ediyorum olabilir. Şimdiye kadar aşağıdaki düşündüm:

1) Array

3) Bir veritabanı modeli içeren diziyi

2) uygulamasında bir yapılandırma dosyasını/yapılandırma döndüren bir yardımcı işlevi (aşırı görünüyor)

4) listeyi her zaman (performans kaygısı?)

kimse yukarıda iyi olurdu yollarından biri ve neden daha iyi bir yol düşünemiyorum veya önerebilir üreten bir fonksiyon? https://github.com/rappasoft/laravel-5-boilerplate

App \ Sağlayıcıları \ MacroServiceProvider.php

cevap

0

Ben burada https://laracasts.com/series/build-project-flyer-with-me/episodes/5

de Laracasts bu çok iyi bir çözüm bulduk adımlar şunlardır:

1) Bir dosya app/HTTP/Kamu oluşturun.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) göz önüne alındığında, en az aşağıdakileri ekleyin:

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

3) $times::all() artık gerekli yerde görünümü içinde kullanılabilir.

0

Sen

laravel Kolektif laravel Kolektif Paketi Formu Makro kullanabilirsiniz Soruyu anladığım kadarıyla, bu, View Composers için mükemmel bir durum olacaktır. ve çoklu görünümlerde ve/veya çoklu kontrolör yöntemlerinde oluşturulması gereken bazı veriler.

bunu hakkında gitmek gibi: Terminalde php artisan make:provider ComposerProvider çalıştırarak

  • Başlat. Orada

    <?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() 
        { 
         // 
        } 
    } 
    
  • bu veriye ihtiyaç tüm görünümleri listeleyebilirsiniz:

  • Bu durum sağlayıcı gibi görünebilir budur.

Görünüm Bestecinin nasıl göründüğüne bir örnek. Bunları, ad alanı önerdiği gibi app/Http/ViewComposers klasörüne yerleştiriyorum.

<?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

Bkz https://github.com/LaravelCollective/html

müthiş bir örnek bulabilirsiniz:

+0

Teşekkür ederim, ancak bu durumda sadece bir açılır menüyü doldurmak istediğimden çok fazla olduğunu düşünüyorum. Bununla birlikte, bu yaklaşımın daha karmaşık durumlar için nasıl yararlı olacağını görebiliyorum. – Joseph

İlgili konular