ক্লাসটি ফাইল সিস্টেমে স্থানান্তরিত করার পরে "ক্লাস XXX কোনও বৈধ সত্তা বা ম্যাপযুক্ত সুপার ক্লাস নয়"


94

আমার আইবি \ প্ল্যাটফর্মবান্ডেল \ সত্তা \ ব্যবহারকারী.পিএপিতে সত্তা শ্রেণি ছিল

এর মাধ্যমে ফর্ম শ্রেণি তৈরি করার চেষ্টা করতে আমার কোনও সমস্যা হয়নি

পিএইচপি অ্যাপ / কনসোল মতবাদ: উত্পন্ন: ফর্ম আইবপ্ল্যাটফর্মবান্ডেল: ব্যবহারকারী

এখন আমি নাম স্থানটি আইব \ প্ল্যাটফর্মবান্ডেল \ সত্তা \ পরিচয় \ ব্যবহারকারীর সাথে পরিবর্তন করেছি, তবে আমি যখন টাস্কটি দিয়ে ফর্মটি তৈরি করার চেষ্টা করি তখন বলার আগে আমি বলেছিলাম:

"ক্লাস আইব \ প্ল্যাটফর্মবান্ডেল \ সত্তা \ ব্যবহারকারী কোনও বৈধ সত্তা বা ম্যাপযুক্ত সুপার ক্লাস নয়" "

এটি ফাইল সামগ্রী:

<?php
namespace Aib\PlatformBundle\Entity\Identity;

use Doctrine\ORM\Mapping as ORM;

    /**
     * Aib\PlatformBundle\Entity\Identity\User
     *
     * @ORM\Table()
     * @ORM\Entity(repositoryClass="Aib\PlatformBundle\Entity\Identity
    \UserRepository")
     */
    class User
    {
    ...

কোন ধারণা?

symfony2.0.4


আপনার ব্যবহারকারীর প্রসারিত এমন কোন শ্রেণি রয়েছে যার জন্য আপনি नेमস্পেসগুলি আপডেট করতে ভুলে গেছেন?
সমস্যাটি

4
আমি যতদূর জানি, আপনার সত্তার জন্য সাব-স্পেসগুলি সংজ্ঞায়িত করা সম্ভব নয়, যেহেতু সিমফনি সর্বদা আইবপ্ল্যাটফর্মবান্ডেল সমাধান করার চেষ্টা করবে : ব্যবহারকারী to প্ল্যাটফর্মবান্ডেল \ সত্তা \ ব্যবহারকারী , নাম নির্বিশেষে, ব্যবহারকারী to
আলেসান্দ্রো দেশান্টিস

উত্তর:


232

এই সমস্যাটি ছিল - * @ORM\Entityনীচের মতো টীকাটি ভুলবেন না :

/**
 * Powma\ServiceBundle\Entity\User
 *
 * @ORM\Entity
 * @ORM\Table(name="users")
 */

16

গতকাল এই সমস্যা ছিল এবং এই থ্রেডটি খুঁজে পেয়েছি। আমি একটি নতুন বান্ডেলে ম্যাপিং দিয়ে সত্তাটি তৈরি করেছি (উদাঃ মাইফুবান্ডেল / সত্তা / ব্যবহারকারী.এফপি), ডক্স অনুসারে সমস্ত কনফিগারেশন করেছি তবে অ্যাপটি লোড করার চেষ্টা করার সময় উপরে থেকে একই ত্রুটি পেয়েছি।

শেষ পর্যন্ত আমি বুঝতে পেরেছিলাম যে আমি অ্যাপকর্নেলে মাইফুবান্ডেলটি লোড করছি না:

new My\FooBundle\MyFooBundle()

এটি ডিবাগ করার দুর্দান্ত উপায় হ'ল এই আদেশটি চালানো:

app/console doctrine:mapping:info

13

আপনার কনফিগার.আইএমএল ফাইলটি পরীক্ষা করে দেখুন, এমন কিছু হওয়া উচিত:

# Doctrine Configuration
doctrine:
    dbal:
        driver:   %database_driver%
        host:     %database_host%
        port:     %database_port%
        dbname:   %database_name%
        user:     %database_user%
        password: %database_password%
        charset:  UTF8
        types:
            json: Sonata\Doctrine\Types\JsonType

    orm:
        auto_generate_proxy_classes: %kernel.debug%
        # auto_mapping: true
        entity_managers:
            default:
                mappings:
                    FOSUserBundle: ~
                    # ApplicationSonataUserBundle: ~
                    YourUserBundle: ~
                    SonataUserBundle: ~

ম্যাপিং তালিকায় আপনার নিজস্ব বান্ডিল যুক্ত করুন।


চিয়ার্স !! আমার কনফিগারেশনে (সোনাটা থেকে) সবেমাত্র ম্যাপিং ছিল: ~, কোনও বান্ডিল নির্দিষ্ট করে না ..
সেগুলিতে

10

আমি falseদ্বিতীয় প্যারামিটার হিসাবে পাস করে এটি সমাধান করেছি Doctrine\ORM\Configuration::newDefaultAnnotationDriver

গুগল এবং উত্স কোডের মাধ্যমে খনন করতে আমার কিছুটা সময় লেগেছিল।

আমার মামলাটি এক প্রকারের বিশেষ ছিল যেহেতু আমি ম্যাপিংটি ব্যবহার করছিলাম যেহেতু সিমফনি ইনস্টলেশনের সাথে সম্পর্কিত না করে অন্য একটি ডিরেক্টরিকে নির্দেশ করে কারণ আমাকেও উত্তরাধিকারের কোডটি ব্যবহার করতে হয়েছিল।

আমি উত্তরাধিকারের সত্তাগুলি রিফেক্টর করেছি এবং তারা কাজ বন্ধ করে দিয়েছে। তারা @Annotationপরিবর্তে ব্যবহার করত @ORM\Annotation, সুতরাং এটি পুনর্বিবেচনা করার পরে কেবল মেটাডেটা পড়তে ব্যর্থ হয়েছিল। একটি সাধারণ টীকা পাঠক ব্যবহার না করে, সমস্ত কিছু ঠিক আছে বলে মনে হয়।


9

আমার ক্ষেত্রে সমস্যাটি আমার সার্ভারের ক্যাশে ইএক্সিলেটর থেকে এপিসি পরিবর্তন করে সমাধান করা হয়েছিল । স্পষ্টতই eAccelerator ফাইলগুলি থেকে সমস্ত মন্তব্যগুলি সরিয়ে দেয় যা আপনার টীকাগুলি ভঙ্গ করে।


Opcache মন্তব্য স্ট্রিপিং অক্ষম করার জন্য একটি সেটিংস আছে opcache.save_comments=1, সম্ভবত eAccelerator / APC এর জন্য খুব একটা আছে?
ওয়েলেক্স

9

আমি $useSimpleAnnotationReader=falseতৈরি করার সময় সেটিংস স্থাপন করে এই সমস্যাটি সমাধান করেছি MetaDataConfiguration


7

মার্ক ফু এবং মোগোম্যানের কাছে বিগ থেক্স

আমি জানতাম এটি কনফিগারেশন.মিলের কোথাও থাকতে হবে ... এবং এটির বিরুদ্ধে এটি পরীক্ষা করতে সক্ষম হয়ে

app/console doctrine:mapping:info

সত্যিই সাহায্য!

প্রকৃতপক্ষে, এই আদেশটি কেবল একটি ত্রুটিতে থামে ... কোনও প্রতিক্রিয়া নেই, তবে যখন সবকিছু ঠিক থাকে আপনার তালিকাভুক্ত সমস্ত সত্ত্বা দেখতে পারা উচিত।


3

বান্ডেলের সংস্থানসমূহ / কনফিগারেশন / মতবাদ ফোল্ডারে একটি বিতর্কিত অটোজেনারেটেড orm.php ফাইলটি মুছে ফেলাতে আমি একই ব্যতিক্রমটি সমাধান করেছি; ডকুমেন্টেশন অনুসারে: "একটি বান্ডেল কেবলমাত্র একটি মেটাডেটা সংজ্ঞা ফর্ম্যাটকে গ্রহণ করতে পারে For উদাহরণস্বরূপ, এনএএমএড পিএইচপি সত্তা শ্রেণীর সংজ্ঞাগুলির সাথে ওয়াইএএমএল মেটাডেটা সংজ্ঞাগুলি মিশ্রিত করা সম্ভব নয়।"


ধন্যবাদ. আপনি আমাকে অনেক সময় বাঁচিয়েছেন। সত্তা পিএইচপি-ফর্ম্যাট করে তৈরি করার পরে এই ত্রুটিটি পেয়েছে, এটি মুছে ফেলার চেয়ে এবং একই নামের সাথে একটি নতুন টীকাযুক্ত সত্তা তৈরি করেছে।
আইএমএক্স

1

আপনার কাছে পিএইচপি 5.3.16 রয়েছে এমন অত্যন্ত সম্ভাবনা রয়েছে (সিমফনি ২.x এর সাথে কাজ করবে না)। যাইহোক আপনার http://you.site.name/config.php এ চেক পৃষ্ঠাটি লোড করা উচিত যদি আপনি হোস্টিং সার্ভারে প্রকল্প কাজ না করে থাকেন তবে পরবর্তী লাইনগুলি অবশ্যই "config.php" এ মুছে ফেলা উচিত:

if (!in_array(@$_SERVER['REMOTE_ADDR'], array(
    '127.0.0.1',
    '::1',
))) {
    header('HTTP/1.0 403 Forbidden');
    exit('This script is only accessible from localhost.');
}

গুডলাক!


0

আমার ক্ষেত্রে, আমি রিফ্যাক্টরের সময় খুব উত্সাহী ছিলাম এবং একটি মতবাদ YML ফাইল মুছে ফেলেছিলাম!


0

আমার ম্যাকের ক্ষেত্রে আমি এসসিআর / মেইনবান্ডেল / রিসোর্স / কনফিগারেশন / ডক্ট্রিন ব্যবহার করছিলাম অবশ্যই ম্যাকটিতে এটি কাজ করেছে তবে এটি উবুন্টু সার্ভারে কাজ করে নি। একবার কনফিগার করার জন্য কনফিগার নাম পরিবর্তন করে এবং মতবাদে মতবাদ তৈরি করার পরে ম্যাপিং ফাইলগুলি পাওয়া যায় এবং এটি কাজ শুরু করে।


-1

আমি কেবল অ্যাপ / কনসোলের পরিবর্তে অ্যাপ্লিকেশন / কনসোল_দেব ব্যবহার করে আপনার ক্ষেত্রে একই ত্রুটি বার্তা থেকে মুক্তি পেয়েছি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.