/ / कस्टम ब्लेड निर्देश में तर्क कैसे पारित करें? - php, लार्वा, लार्वा -5, ब्लेड, लार्वा-5.1

एक कस्टम ब्लेड निर्देश में तर्क कैसे पास करें? - पीएचपी, लार्वेल, लार्वेल -5, ब्लेड, लार्वेल-5.1

लारवेल 5.1 में, मैं एक बहुत ही बुनियादी ब्लेड निर्देशन बनाने की कोशिश कर रहा हूं:

Blade::directive("hello", function ($planet) {
return "Hello " . $planet;
});

जब मैं लिखता हूं:

@hello("world")

यह लौटाता है:

Hello ("world")

मुझे चाहिए:

Hello world

हां, मैं इन ब्रैकेट्स को मैन्युअल रूप से हटा सकता हूं लेकिन क्या यह लारवेल में एक बग है या क्या? मुझे कैसे मिल सकता हैं world के बजाय (world) के मान के रूप में $planet.

उत्तर:

जवाब के लिए 3 № 1

इसे इस्तेमाल करे :

Blade::directive("hello", function ($planet) {
return "<?php echo "Hello" . $planet ?>";
});

@hello("world"); // => Hello world

आप भी पास कर सकते हैं सरणी स्ट्रिंग के बजाय, उस स्थिति में आपको परिभाषित करना होगा कि सरणी को रिटर्न वैल्यू में कैसे संभाला जाना चाहिए, यहां एक उदाहरण है:

Blade::directive("hello", function ($value) {
if (is_array($value)) {
return "<?php echo "Hello" . $value[0] . " and " . $value[1] ?>";
}

if (is_string($planets)) {
return "<?php echo "Hello" . $value ?>";
}

// fallback when value is not recognised
return "<?php echo "Hello" ?>";
});

@hello("world"); // => Hello world
@hello(["world", "mars"]); // => Hello world mars