2016-04-05 24 views
0

Programlama konusunda oldukça yeni ve MVC modeli hakkında basit bir sorum var. Görüşlere, denetleyicilere ve modellere sahip Laravel'i öğrenmeye başladım.MVC - Görünümlerde ifs yapabilir miyim

Sorum şu: Ben görüşlerimi bunun gibi if s olabilir mi?

<option value="dayofweek" {{Input::get('group') == 'dayofweek' ? 'selected' : ''}}>Day Of week </option>

benim <select> içinde <option> birkaç s var ve ben durumu Input::has('group') && ... için ifade eklemek, özellikle çirkin görünüyor tür. Orada aynı verilere sahip ve tüm kontrolleri gerçekleştirerek, sonra sadece görünümü seçilir ve seçili olmayan seçenekler hale izin beri

benim denetleyicisi onun seçenekleri ile seçkin inşa mıdır?

Not: Elimden biliyorum ama gerektiği ben?

cevap

2

Evet, yapabileceğiniz if ifadeler. Bu delilik olurdu, çünkü bu sizin görüşlerin tamamen statik olacağı anlamına gelir, ki bu oldukça pratik değildir.

Ancak, muhtemelen bu ifadeler Input gibi bir şey bağlıdır olması kötü bir fikirdir. Görünümleriniz bundan daha fazla dekuple edilmiş olmalıdır. Belirli bir görünümü birkaç farklı senaryoda kullanacağınızı hayal edin; Diğer bir deyişle, birçok farklı kontrolör aynı görünümü oluşturmak isteyebilir. Bu senaryoların her birinde Input'un ya da özel olarak hangi girdinin çağrıldığının garantisi yoktur. denetleyici doğrudan girişi ele almalıdır, görünüm denetleyicinin ayarladığı $currentGroup gibi bir değişken almalıdır. Giriş ve çıkış arasında bir miktar yalıtım koymak ve yeniden kullanılabilirliği ve esnekliği arttırmak için bunları derhal birbirine bağlamak istemezsiniz.

0
Aşağıda gibi yapabilirsiniz

,

<select> 
     @foreach ($dropItems as $item) 
      {{-- */ 
       $selected = ''; 
       if (Input::has('group') && Input::get('group') == $item) { 
        $selected = 'selected'; 
       } 
      /* --}} 
      <option value="dayofweek" {{ $selected }}>Day Of week </option> 
     @endforeach 
    </select> 

VEYA

{!! Form::select('day_drop_down', $daysArray , (Input::has('group') && Input::get('group') == '')?Input::get('group'):0, ['class' => 'form-control', 'id'=>'productTemplate']) !!} 
+0

Muhtemelen laravel bahsetmeliydik ve dil/çerçeve belirtmeden sorumu sormalıydık. Nasıl yapabileceğimi sormuyorum. Ne istediğimi kontrolörde mi yoksa görüşte mi yapmalıyım? :) Bazı derslerde yapılacak her iki şeyi de gördüm.En iyi uygulamaların neler olduğunu bilmek istiyorum. Teşekkürler. –

0

soru Denetleyiciniz ikamet etmez edilir kullanabilir? Sunucu tarafı programlama yapıyor musunuz? Daha sonra denetleyici ve model sunucuda bulunur.

istemci tarafı programlama yapıyorsanız

sonra her üç katmanları tarayıcısı HTML/CSS (görünüm), JavaScript (Kontrolör ve Modeli) yaşamaktadır.

o zaman temiz HTML üstü ise:

val = get('group') == 'dayofweek' ? 'selected' : ''}} 
$('dayofweek').val = val; 

(üzgün JavaScript muhtemelen yanlıştır:

<option value="dayofweek">Day Of week </option> 

Ve (denetleyici olarak) yalnızca Javascript manipülasyon yok. .. ama fikir olsun.) sizin görünümünde

İlgili konular