2016-03-24 58 views
1

Laravel'de hem kayıt eklemek hem de kayıtları güncellemek için kullandığım bir görünüm var.Kasıtlı olarak tanımlanmamış değişkenler Laravel'de nasıl ele alınır?

 {!! Form::checkbox('active', 1, $info->active) !!} 

$info açıkça sadece ne zaman geçerlidir kontrolü (I $info = MyModel::findOrFail($id) böyle bir şey yapmak), manzarayı geçirilen bir veritabanından alınan kaydı anlamına gelir: Bir onay kutusu gelince, ben şu kodu kullanın kaydı düzenle. Ben yeni bir kayıt oluşturduğunuzda bu değişken yok ve bu hatayı alıyorum: Bu dolaşmak için en iyi yolu nedir: toplam mantıklı ama soru

Undefined variable

. Koşullu bir ifade kullanmalı mıyım? Boş bir değişken oluşturmalı mıyım? İki farklı onay kutusu kullanmalı mıyım? Burada önerilen nedir?

+0

Neden sadece isset ile değişkeni kontrol etmiyorsunuz? –

+0

Evet, bu seçeneklerden biri. Ama önerilen yol bu mu? Ve bunu nerede yapardım? Bunu bu işlevin içinde yapabilmek mümkün görünmüyor, bu yüzden etrafında bir şey olması gerekiyor. –

cevap

1

Oluşturma formu için $info = new MyModel()'u ayarlayabilirsiniz.

Kavramsal anlamda mantıklı, şablonlarınızı temiz tutar ve çoğaltılmasını önler.

0

Hem ekleme hem de silme işlemleri için iki ayrı görünüm kullanmalısınız.

: Rota kaynakları endeksi gibi yöntemleri var neden vb durumda

, ikinizin görünümleri kullanmayı önermek ve yapılandırma ilkesi yerine kurallar takip edeceğini, oluşturma, mağaza, gösteri, düzenleme, güncelleme, silme var

public function create() 
{ 
    return view('post.create'); 
} 

public function store(Request $request) 
{ 
    $post = Post::create($request->all()); 
} 

public function edit() 
{ 
    return view('post.edit'); 
} 

public function update($id, Request $request) 
{ 
    $post = Post::whereId($id)->update($request->all()); 
} 
0

Aşağıdaki oluştururken gibi yapabilirsiniz: tam olarak sorunu gidermek için önce bu yaklaşımı kullanmış

// Controller. 
$user = new User; 

// View 
Form::model($user, ['route' => ['user.store', $user]]) 

.