मैं एक फ़ोल्डर के भीतर फ़ाइलों की एक सूची को प्रतिध्वनित करने का प्रयास कर रहा हूं। एक उदाहरण फ़ाइल नाम example.blade.php है।

मैं फ़ाइलों को पुनः प्राप्त कर रहा हूँ

$files = File::allFiles('path/to/my/files');

मैं सरणी के माध्यम से लूप करता हूं

foreach ($files as $file) {
    $filename = explode('.', $file->getFilenameWithoutExtension());

    var_dump($filename);
}

कौन सा रिटर्न

array(2) {
  [0]=>
  string(12) "introduction"
  [1]=>
  string(5) "blade"
}
array(2) {
  [0]=>
  string(4) "test"
  [1]=>
  string(5) "blade"
}

मुझे पता है कि मुझे केवल 0 परिणाम की आवश्यकता है क्योंकि यह प्रश्न में फ़ाइल नाम है।

मैं परिणाम को एक चर में डालता हूं और इसे नियंत्रक में view डेटा में जोड़ता हूं, इसलिए इसे ब्लेड में इस्तेमाल किया जा सकता है। जब मैं ब्लेड में एक सूची बनाने की कोशिश करता हूं

@foreach($filenames as $filename) {
    {{ $filename }}
@endforeach

मैं केवल अंतिम परिणाम प्राप्त कर सकता हूं।

मैं इस पर टुकड़ों को एक साथ नहीं रख सकता, इसलिए किसी भी सहायता की बहुत सराहना की जाएगी और मुझे प्रगति करने देगी

धन्यवाद।

0
Chris Mellor 27 सितंबर 2020, 18:22

1 उत्तर

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

आप केवल एकल चर को अद्यतन कर रहे हैं जो एक समय में एक मान संग्रहीत कर रहा है और हमेशा अगले एक द्वारा प्रतिस्थापित किया जाता है, इसलिए अंत में इसमें अंतिम फ़ाइल का नाम होगा। [] का उपयोग करके प्रत्येक फ़ाइल नाम को सरणी में असाइन करें।

$filenames = [];
$files = File::allFiles('path/to/my/files');

foreach ($files as $file) {
    $filename = explode('.', $file->getFilenameWithoutExtension());
    $filenames[] = $filename[0];  // as you don't want blade or further extensions. 
}

return view('abc', ['filenames' => $filenames]);

अब आप इसे अपने विचार में उसी तरह उपयोग कर सकते हैं जैसे आपने उल्लेख किया है।

@foreach($filenames as $filename) {
    {{ $filename }}
@endforeach
1
Dark Knight 27 सितंबर 2020, 19:26