2015-04-16 13 views
24

मेरे पास models नामक निर्देशिका है app/ जहां मैं अपने सभी मॉडल वर्ग रखता हूं। अब मैं निर्देशिका को बदलना चाहते हैं जहां निम्न आदेश उत्पन्न वर्गोंलार्वेल 5 मॉडल फ़ोल्डर

php artisan make:model SomeModel 

उत्तर

39

आप नहीं कर सकते हैं आउटपुट और, यदि आप ब्रह्मांड के Laravel के संस्करण के लिए hewing हैं, तो आप नहीं करना चाहिए। लैरवेल 5 अपनी सभी वर्ग फ़ाइलों के लिए एक पीएसआर -4 नामकरण सम्मेलन प्रदान करता है, और मानता है। इसका मतलब है कि मॉडल (और सभी वर्ग) को उनके पूर्ण श्रेणी के नाम के आधार पर रखा जाना चाहिए।

जब आप कहते हैं कि

php artisan make:model SomeModel 

आप वास्तव में App\SomeModel का पूरा नाम साथ कोई मॉडल बना रहे हैं, ताकि artisan निम्नलिखित फ़ाइल बनाता है।

app/SomeModel.php 

यदि आप कहा

php artisan make:model 'Test\SomeModel' 

आप पूरा नाम App\Test\SomeModel साथ कोई मॉडल बना होगी, और Laravel

app/Test/SomeModel.php 

तो निम्न फ़ाइल बना सकेगी, इसकी अपने मॉडल के पूर्ण वर्ग का नाम (नामस्थान शामिल) जो निर्धारित करता है कि कक्षा परिभाषा फ़ाइल कहां है।

+0

मैंने इसे लैरवेल 5 में और मॉडर के लिए पथ देने पर कोशिश की एल फाइल, मुझे आपके द्वारा वर्णित एकल उद्धरण के बिना पथ का उल्लेख करना पड़ा। यह मेरे लिए काम करता है: 'php artisan make: मॉडल टेस्ट \ SomeModel' – Neel

+1

@Alan: क्या Laravel 5 से मॉडल निर्देशिका को हटाने का कोई विशिष्ट कारण है? – Ashish

+0

@ आशीष नामस्थानों के लिए PHP मानकों के अनुरूप है, और सभी एप्लिकेशन वर्गों को समान तरीके से स्वत: लोड करने की स्थिरता। –

7

मैंने पाया यह होना चाहिए:

php artisan make:model ModelFolder\\SomeModel 
+4

असल में यह एक बैकस्लैश होना चाहिए –

+0

एक बैकस्लैश – fdrv

+0

के साथ काम नहीं करता है जो आपके टर्मिनल पर बहुत अच्छी तरह से निर्भर हो सकता है ...? –

0

आप विशिष्ट फ़ोल्डर पर मैन्युअल मॉडल बनाना चाहते हैं। उदाहरण यदि आप मॉडल मॉडल Models में मॉडल बनाना चाहते हैं। आपके द्वारा पहले बनाए गए फ़ोल्डर मॉडल के अंदर info.php नाम की फ़ाइल बनाएं। यहाँ आप info.php

<?php namespace App\Models; 
use Illuminate\Database\Eloquent\Model; 
class Info extends Model 
{ 
    // your code 
    protected $table = 'tb_users'; 
} 

बेशक में इस तरह कोड लिखना चाहिए रहे हैं आप Info कोई दृश्य बनाते समय है कि मॉडल कॉल करने के लिए चाहते हैं, तो आप भी कारीगर आदेश php artisan make:model "Models\Info"

उपयोग कर सकते हैं

<?php 
$users = App\Models\Info::all(); 

foreach ($users as $user) { 
    echo $user->name; 
} 

यह उपयोगकर्ताओं के सभी नाम प्रदर्शित करेगा

संबंधित मुद्दे