Внутренняя ошибка сервера после добавления полей CMS в файл php

Я создал Homepage.ss для шаблона и Homepage.php для типа страницы, и после добавления некоторых кодов для добавления поля в файл php я получаю сообщение об ошибке внутреннего сервера, которое появляется в небольшом окне в правом верхнем углу. угол страницы, и я также не мог перейти в режим редактирования или режим предварительного просмотра страницы администратора.

Уже очистил кеш и запустите dev / build, но не работает.

Внутренняя ошибка сервера после добавления полей CMS в файл php

Ниже приведен снимок экрана администратора при переходе на главную страницу.

Внутренняя ошибка сервера после добавления полей CMS в файл php

Подскажите, пожалуйста, почему эта тема была помечена?

Lisandro 04.11.2018 04:56

Удар в темноте: вы не упомянули, какую версию SilverStripe вы используете, вы разместили снимок экрана с кодом вместо кода, и это не похоже на то, что вы пытались отладить сообщение об ошибке вы получаете. Это означает, что ваш вопрос трудно воспроизвести. См. Как спросить (хороший вопрос) для дальнейшего использования

scrowler 05.11.2018 14:58

извините за то, что так ленился. Теперь я понимаю. Я новичок в php, поскольку я всего лишь дизайнер со знанием инструментов веб-дизайна (html, css, javascript, jquery и т. д.). Я думаю, моих знаний в php недостаточно, чтобы делать проекты в silverstripe. теперь мне нужно поработать над его изучением. в любом случае, спасибо, что пролили свет

Lisandro 05.11.2018 16:07
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
157
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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;
    }
}

да. это сработало как шарм. однако, если вы хотите добавить вкладку для поля изображения, например, фоновое изображение для страницы. вам нужно снова добавить для него пространство имен? если да, то какое это должно быть пространство имен? Мне жаль, что я был глуп, но если есть что-то, чему мне нужно научиться, прежде чем делать это, пожалуйста, дайте мне знать. благодарю вас!

Lisandro 05.11.2018 16:12

Ага, верно. Вы можете найти пространство имен, посмотрев на UploadField.php (вверху файла), или вы можете найти плагин для своей IDE, который будет автоматически заполнять пространства имен за вас.

scrowler 05.11.2018 16:13

Я сейчас использую скобки. однако я не смог найти для него никаких плагинов, которые автоматически разрешают пространство имен. есть ли что-то, что вы можете предложить относительно того, в какой среде IDE есть доступные плагины?

Lisandro 05.11.2018 18:02

Php storm было бы хорошо, но sublime и atom тоже хороши (и бесплатны) с этими плагинами

scrowler 05.11.2018 18:08

Другие вопросы по теме