Я создал Homepage.ss для шаблона и Homepage.php для типа страницы, и после добавления некоторых кодов для добавления поля в файл php я получаю сообщение об ошибке внутреннего сервера, которое появляется в небольшом окне в правом верхнем углу. угол страницы, и я также не мог перейти в режим редактирования или режим предварительного просмотра страницы администратора.
Уже очистил кеш и запустите dev / build, но не работает.
Ниже приведен снимок экрана администратора при переходе на главную страницу.
Удар в темноте: вы не упомянули, какую версию SilverStripe вы используете, вы разместили снимок экрана с кодом вместо кода, и это не похоже на то, что вы пытались отладить сообщение об ошибке вы получаете. Это означает, что ваш вопрос трудно воспроизвести. См. Как спросить (хороший вопрос) для дальнейшего использования
извините за то, что так ленился. Теперь я понимаю. Я новичок в php, поскольку я всего лишь дизайнер со знанием инструментов веб-дизайна (html, css, javascript, jquery и т. д.). Я думаю, моих знаний в php недостаточно, чтобы делать проекты в silverstripe. теперь мне нужно поработать над его изучением. в любом случае, спасибо, что пролили свет






i am getting an internal server error message that pops up in a small window at the top right corner of the page
Прежде всего, когда вы получаете системную ошибку, вы обычно можете выполнить базовую отладку, чтобы выяснить, в чем заключается настоящая проблема. Это может включать установку переменной SS_ENVIRONMENT_TYPE .env в значение «dev», чтобы трассировки исключений выводились (либо непосредственно на экран, либо в монитор браузера сетевых запросов для запросов AJAX).
Как только вы узнаете, в чем проблема, вы сможете решить, как ее исправить.
Ваша проблема в том, что вы не обрабатываете ни одно из пространств имен классов в своем коде. Page и PageController существуют в глобальном пространстве имен, но все остальное находится в пространстве имен. Попробуй это:
<?php
use SilverStripe\Forms\HTMLEditor\HTMLEditorField;
class Homepage extends Page
{
private static $db = [
'BottomContent' => 'HTMLText',
];
public function getCMSFields()
{
$fields = parent::getCMSFields();
$fields->addFieldToTab('Root.Main', HTMLEditorField::create('BottomContent', 'Bottom Content'));
return $fields;
}
}
да. это сработало как шарм. однако, если вы хотите добавить вкладку для поля изображения, например, фоновое изображение для страницы. вам нужно снова добавить для него пространство имен? если да, то какое это должно быть пространство имен? Мне жаль, что я был глуп, но если есть что-то, чему мне нужно научиться, прежде чем делать это, пожалуйста, дайте мне знать. благодарю вас!
Ага, верно. Вы можете найти пространство имен, посмотрев на UploadField.php (вверху файла), или вы можете найти плагин для своей IDE, который будет автоматически заполнять пространства имен за вас.
Я сейчас использую скобки. однако я не смог найти для него никаких плагинов, которые автоматически разрешают пространство имен. есть ли что-то, что вы можете предложить относительно того, в какой среде IDE есть доступные плагины?
Php storm было бы хорошо, но sublime и atom тоже хороши (и бесплатны) с этими плагинами
Подскажите, пожалуйста, почему эта тема была помечена?