مشاكل مع قاعدة بيانات العلاقات مع symfony الإطار - لا يمكن جلب TableMap على غير معرف الجدول
-
22-07-2019 - |
سؤال
حاليا على تطوير تطبيق باستخدام أحدث نسخة من symfony, التي تم الحصول عليها من خلال الكمثرى.هذا هو بالضبط مخطط التكوين
propel:
user:
id:
name: { type: varchar(255), required: true }
level: { type: integer, required: true, default: 1 }
created_at:
post:
id:
title: { type: varchar(255), required: true }
post: { type: longvarchar, required: true }
user_id:
created_at:
updated_at:
comment:
id:
relation: integer
comment: { type: varchar(300), required: true }
nick: { type: varchar(100), required: true }
created_at:
updated_at:
استيقظ وعلم ربما كنت قد لاحظت أن user_id في المنصب هو مفتاح خارجي إلى المستخدم.وفقا واضح الدليل ؛ [quote title=اقتباس:](الأعمدة تنتهي مع _id تعتبر مفاتيح خارجية و الجدول المرتبط تلقائيا تحدد وفقا الجزء الأول من اسم العمود).[/quote]
كلما كنت في محاولة لبناء أي فلاتر أو أشكال (بناء-فلاتر/بناء نماذج/بناء-جميع) أحصل على follwing رسالة الخطأ.
>> propel generating form classes
-----> Cannot fetch TableMap for undefined table: user. Make sure you have the static MapBuilder registration code after your peer stub class definition. <------
[?php
/**
* Post form base class.
*
* @package ##PROJECT_NAME##
* @subpackage form
* @author ##AUTHOR_NAME##
* @version SVN: $Id: sfPropelFormGeneratedTemplate.php 16976 2009-04-04 12:47:44Z fabien $
*/
class BasePostForm extends BaseFormPropel
{
public function setup()
{
$this->setWidgets(array(
'id' => new sfWidgetFormInputHidden(),
'title' => new sfWidgetFormInput(),
'post' => new sfWidgetFormTextarea(),
'user_id' => new sfWidgetFormPropelChoice(
كما حاولت تحديد foreignTable و foreignReference في المخطط ، ولكن دون حظ.هذا هو جديد symfony المشروع ، إلا أن تصحيح هذا الخطأ.لقد حاولت استخدام المفرد والجمع أسماء الجداول.أفعل شيء خاطئ ، أو قوية علة ؟ نقدر أي مدخلات هذا هو يقود لي مجنون!
لدي موضوع في المنتدى في symfony الرسمية في المجتمع, هنا: http://forum.symfony-project.org/index.php/m/77979/ - كانت هناك بعض الاقتراحات (مثل كيف نسيت التلدة و "المستخدم" هو ما قبل-طبقية محددة ، ولكن المشاكل لا تزال حل [تحرير] من الآن.
واحدة الإنترنت مجانا عناق, الدعائم الرئيسية مجانا مكوك الفضاء إلى الأقوياء الروح الذي يأتي مع حل! (تنويه:هناك في الواقع لا توجد مساحة حرة المكوك)
المحلول
تحديث:المشكلة قد تم حلها! ...بعد ساعات لا تحصى من تعقب وتصحيح الأخطاء.
كان سبب المشكلة من قبل بادئة الجدول يدويا مشفرة في دفع.ini مثل هذا:
;مخصص بادئة الجدول
دفع.tablePrefix = mindmonkey_
لا يوجد اتصال مع المخطط.yml و دفع.ini أو شيء من هذا القبيل, لذلك كل شيء تنصتت تصل.استنتاجي من هذا هو:ننسى البادئات فقط استخدام مخصصة مخطط لكل مشروع...أنا فقط استخدام البادئة كما العادة دائما - ولكن أبدا مرة أخرى ما لم يتم إرشادك للقيام بذلك!