2016-07-26 16 views
5

Laravel'de özel bir yönerge yazmaya çalışıyorum. Ancak, sadece benim blade kısmi yolunu bir ip gibi döndürür, fiili html gibi @include yapar.@include laravel'de nasıl çalışır?

@customInclude('authenticated/partials/header2') 


    Blade::directive('customInclude', function($partial){ 
     if(Config::get('constants.ORG_ID') === 'organizationId'){ 
      return "<?php echo $partial; ?>"; 
     } 
    }); 

Ben ancak, bu bıçak yolu benim php bir yol olduğunu tanımıyor gibi görünüyor, özel direktifi '/ Partials/başlık2 doğrulanmış' Yolda bulunan html dönmek istiyorum. Özel yönergem AppServiceProvider.php dosyasında btw yaşıyor. @include'nin gerçekten iyi çalıştığını bilen var mı, bu yüzden yolumun neden tanınmayacağını açıklayabilirler.

+0

İpucu. '$ parsiyel''in değeri 'authentated/partials/header2'. Doğrulanmış/kısmi/header2 yankılandığında ne olur? – ceejayoz

+0

@ceejayoz: sayfa dışarı çıkar. ',' Veya ';' bekleniyor, beklenmeyen 'doğrulanmış' (T_STRING) sözdizimi hatası döndürür – ksong12345

+0

Doğru, çünkü ceejayoz

cevap

1

Serin soru, bu kazma biraz aldı, ancak laravel oldukça kolay ne çoğaltabilir:

Blade::directive('customInclude', function($partial){ 
    if(Config::get('constants.ORG_ID') === 'organizationId'){ 
     return "<?php echo view($partial); ?>"; 
    } 
}); 
+0

Bu hata FatalErrorException öğesini ec6488ec73fd89a9fcb067be4180e524 satırında alıyorum 0: Yöntem Işığı \ Görünüm \ Görünüm :: __ toString(), yukarıdakileri uygulamaya çalışırken bir istisna atmamalı. – ksong12345

+1

Kısmenizin içinde bir hata olabilir mi? Sadece "merhaba dünya" ile bir foo.blade.php gibi başlamak için basitleştirilmiş bir bıçak deneyin. Ayrıca, php artisan görünümüyle önbelleği görüntülediğinizi de temizleyin: temizle – Chris

+0

Ah Haklısınız. Ancak, sorun şu ki şablon, düzenli bir @include yaptığımda kullandığım değişkenleri tanımıyor. Başka bir yazı okudum ve eko görünümü ($ parsiyel) -> render(); Şimdi tanımlanmamış bir değişken hatası alıyorum. – ksong12345

0

Teşekkür Chris cevabın için. Doğruydu. Ancak, belirli değişkenleri görünümünüze aktarmak istiyorsanız. Aşağıdakiler, compact() aracılığıyla tüm değişkenleri de dahil olmak üzere tümüyle reddetti.

+0

Endişeye gerek yok. Yorumda belirtildiği gibi, değişkenleri normal görünüm yöntemine göre iletmeniz yeterlidir. Kompakt gerekmez, bunun yerine şık bir kısayolu. – Chris