मैं नीचे दिए गए नियंत्रक के साथ साइट मानचित्र पृष्ठ पर अपनी श्रेणियां दिखाने का प्रयास कर रहा हूं।

श्रेणी नियंत्रक.php

class CategoriesController extends Controller
{
    public function create()
    {
        $categories = Category
                  ::orderBy('name','desc')
                  ->where('parent_id', NULL)
                  ->get();

        return view('admin.category.create', compact('categories'));
    }
}

निम्नलिखित मेरी ब्लेड फ़ाइल का हिस्सा है जहाँ मैं श्रेणियों के चर टेम्पलेट का उपयोग करता हूँ।

create.blade.php

<div class="form-group">
    <label for="exampleInputPassword1">Parent Category</label>
    <select name="parent_id" class="form-control">
        @foreach ($main_categories as $category)
            <option value="{{ $category->id }}">{{ $category->name }}</option>
        @endforeach
    </select>
</div>

मैं परिवर्तनीय और गुजरने के लिए हर तरह का उपयोग करता हूं लेकिन कोई भी काम नहीं करता है क्या आपके पास कोई सुझाव है?

3
Mallik Shipan 7 नवम्बर 2019, 01:41
1
आप दृश्य के उस भाग में $categories का उपयोग करने का प्रयास नहीं कर रहे हैं
 – 
lagbox
7 नवम्बर 2019, 01:45
2
$main_categories $categories होना चाहिए
 – 
IGP
7 नवम्बर 2019, 01:48

2 जवाब

आपको यहां दो विकल्प मिले हैं।

विकल्प ए:

आपने अपने कंट्रोलर में संग्रह को categories नाम दिया है और इसे इस तरह से दृश्य में भेज दिया है। अपने विचार में इसे एक्सेस करने के लिए, आपको इसे उसी नाम से संदर्भित करना होगा।

इसे बदलें:

// Your view is looking for a collection titled `main_categories`, which does not exist
@foreach ($main_categories as $category)
  <option value="{{ $category->id }}">{{ $category->name }}</option>
@endforeach

इसके लिए:

@foreach ($categories as $c)
  <option value="{{ $c->id }}">{{ $c->name }}</option>
@endforeach

विकल्प बी:

संग्रह नाम के रूप में main_categories का उपयोग करके डेटा वापस पास करें

इसे बदलें:

return view('admin.category.create', compact('categories'));

इसके लिए:

return view('admin.category.create', [
    'main_categories' => $categories
]);

आप डेटा को यहां देखे जाने के बारे में अधिक पढ़ सकते हैं।

2
FullStackOfPancakes 13 अगस्त 2020, 02:25

अधिक स्पष्ट होने के लिए मैं नीचे दिए गए कोड को तोड़ दूंगा और कुछ विवरण जोड़ूंगा

    class CategoriesController extends Controller
{
    public function create()
    {
        $categories = Category
                  ::orderBy('name','desc')
                  ->where('parent_id', NULL)
                  ->get();
// Your are passing variable but I change it as below to be more clear

     //   return view('admin.category.create', compact('categories'));
//now you are passing the value to the view
          return view('admin.category.create', ['categories' => $categories]);
    }
}

अब इसे दृश्य में पकड़ने दें। ध्यान दें कि अब $श्रेणियाँ दृश्य में उपलब्ध हैं। यदि आप ['A' => $categories] पास करते हैं तो व्यू में $A वैरिएबल है, इसलिए आपको उस प्रासंगिक वैरिएबल के लिए कॉल करना चाहिए जिसे आप कंट्रोलर में परिभाषित करते हैं।

   <div class="form-group">
        <label for="exampleInputPassword1">Parent Category</label>
        <select name="parent_id" class="form-control">
**{{-- In here you should pass $categories --}}**
            @foreach ($categories as $category)
                <option value="{{ $category->id }}">{{ $category->name }}</option>
            @endforeach
        </select>
    </div>
0
Nipun Tharuksha 7 नवम्बर 2019, 06:10