تعطيل تخطيط sfdoctrineguardplugin في symfony
-
23-09-2019 - |
سؤال
كيف يمكنني منع نموذج تسجيل دخول المكون الإضافي المذكور من استخدام التخطيط الافتراضي؟ أنا على علم هذا السؤال, ، لكن هذه الإجابة لا تعمل بالنسبة لي. بالنسبة للمبتدئين ، لا توجد وحدة علامات في الوحدات النمطية ، وربما تعاملها المكونات الإضافية بطريقة مختلفة ، لا أعرف. مجرد تعلم symfony. شكرا لك مقدما :)
المحلول
إذا كنت ترغب فقط في تعيين تصميم مختلف ، فأنت بحاجة إلى إضافة وحدة نمطية (فقط قم بإنشائها يدويًا) تسمى "Sfguardauth". داخل / config / directory لذلك ، قم بتغيير التصميم في العرض. تم شرح هذا في:
http://www.symfony-project.org/plugins/sfdoctrineguardplugin/4_0_0
... ضمن القسم "تخصيص إجراءات وحدة SFGuardauth".
ومع ذلك ، إذا كنت ترغب في "تضمين" نموذج تسجيل الدخول الخاص بك على صفحة أخرى موجودة ، فيمكنك تحويل تسجيل الدخول إلى مكون - مما يعني أنه يستخدم التخطيط الحالي للصفحة التي تحدث فيها.
إجراء المكون في وحدة مخصصة:
public function executeSigninLightbox(sfWebRequest $request)
{
$class = sfConfig::get('app_sf_guard_plugin_signin_form', 'sfGuardFormSignin');
$this->form = new $class();
}
... والتي تستخدم مثل جميع المكونات جزءًا من وجهة نظره. يحتوي الجزء الجزئي الآن على إمكانية الوصول إلى نموذج $ مثل صفحة تسجيل الدخول القياسية. سيتم تسمية جزئي لهذا "_signinlightbox".
امل ان يساعد.
نصائح أخرى
في الوقت الحالي ، لا يمكن تعيين تخطيط مخصص للبعض sfGuardAuth
العمل عبر العرف view.yml
.
هكذا فعلت ذلك.
هذا هو بلدي apps/backend/modules/sfGuardAuth/actions/actions.class.php
:
<?php
require_once(sfConfig::get('sf_plugins_dir').'/sfDoctrineGuardPlugin/modules/sfGuardAuth/lib/BasesfGuardAuthActions.class.php');
class sfGuardAuthActions extends BasesfGuardAuthActions
{
public function preExecute()
{
$layout = $this->getActionName() == sfConfig::get('sf_login_action') ? 'sfGuardLayout' : $this->getLayout();
$this->setLayout($layout);
}
}