मेरे पास कई विचार हैं जिनमें एक सामान्य @ अनुभाग है जो एक लेआउट फ़ाइल में प्रदर्शित किया जाएगा। और मुझे उन वर्णों की संख्या को सीमित करना होगा जो @yield लौटाते हैं।

// layout.blade.php
...
<meta property="og:title" content="@yield('og_title', 'Default Value')" />
...
// sample.blade.php
...
@section('og_title', $page->og_title)
...

हालांकि नमूना समझने में काफी आसान है, प्रत्येक og_title @section की अपनी पोस्ट प्रोसेसिंग होती है (यदि... और...)

अभी के लिए, मैं जो कर रहा हूं वह प्रत्येक og_title @section में सबस्ट्र जोड़ना है और इसे सभी दृश्यों में दोहराना है। समस्या यह है कि, जब वर्ण सीमा बदलती है (जैसे ६० से ७५), तो मुझे इसे प्रत्येक दृश्य में भी बदलना होगा।

// sample.blade.php
...
@section('og_title', substr($page->meta_title, 0, 60))
...

क्या @yield रिटर्न करने वाले वर्णों की संख्या को सीमित करने का कोई तरीका है? के समान:

// layout.blade.php
...
<meta property="og:title" content="@yield('og_title', 'Default Value', $limit??)" />
...

मैंने @yeild में substr जोड़ने का भी प्रयास किया लेकिन यह एक त्रुटि देता है:

// layout.blade.php
...
<meta property="og:title" content="{{ substr(@yield('og_title', 'Default Value'), 0, 60) }}" />
...
0
claw68 8 अक्टूबर 2020, 04:47

1 उत्तर

सबसे बढ़िया उत्तर

Google के साथ झड़प के एक घंटे के बाद, मुझे कुछ हद तक "हैकी" समाधान मिला, उपज के लिए अंतर्निहित फ़ंक्शन का उपयोग करने के लिए इसके लिए सबस्ट्र लागू करें

// layout.blade.php
...
<meta property="og:title" content="{{ substr(e($__env->yieldContent('title', 'Default Value')), 0, 60) }}" />
...
0
claw68 8 अक्टूबर 2020, 02:49