我正在尝试为EasyAdmin覆盖“新”模板,但是系统忽略了模板代码。 这是 easy_admin.yaml
的相关部分entities:
# List the entity class name you want to manage
Places:
class: App\Entity\Places
templates:
list: 'asdfasdf'
如您所见,列表属性的值无效,但系统会忽略它,并且可以正常工作,并且无法覆盖模板。
您有建议吗?
答案 0 :(得分:1)
如果您使用 EasyAdmin 3.x,为此您可以覆盖在实体的控制器中指定它的特定模板,或者您可以像 symfony 一样创建自己的文件夹结构。
在这个例子中,我只覆盖了我的“学生”实体的编辑模板,如果你想改变你项目的所有编辑,你必须像 symfony 一样创建文件夹结构。
#include <Windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
HWND hImageWindow;
void ImageWindows() {
HBITMAP hFirstPic = (HBITMAP)LoadImage(NULL, L"test.bmp", (WPARAM)IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
LRESULT messageResult = SendMessageW(hImageWindow, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hFirstPic); //sending image to window
//Error check
DWORD error = GetLastError();
if (error != 0) {
LPTSTR output = NULL;
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, error, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&output, 0, NULL);
MessageBox(NULL, output, L"Error. Reason:", MB_OK);
}
else {
MessageBox(NULL, L"Image was assigned correctly!", L"Success", MB_OK);
}
//Error check
}
int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR szCmdLine, _In_ int iCmdShow)
{
static TCHAR szAppName[] = TEXT("hello windows");
MSG msg;
WNDCLASS wndclass;
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szAppName;
if (!RegisterClass(&wndclass))
{
MessageBox(NULL, TEXT("This program requires Windows NT!"), szAppName, MB_ICONERROR);
}
HWND hwnd = CreateWindow(szAppName,
TEXT("the hello program"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hwnd, iCmdShow);
UpdateWindow(hwnd);
hImageWindow = CreateWindow(L"STATIC", L"background", SS_BITMAP | WS_CHILD | WS_VISIBLE, 0, 0, 300, 300, hwnd, NULL, NULL, NULL);
ImageWindows();
while (GetMessageW(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessageW(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, message, wParam, lParam);
}
您甚至可以结合使用这两种方法。假设除了只修改学生的模板 'edit' 之外,您还想修改 easyadmin 显示 flash 消息 的方式,为此您只需创建此结构在您的模板文件夹中:"templates\bundles\EasyAdminBundles\flash_messages.html.twig"
我留下了 EasyAdmin 3.x 文档的链接 overriding-templates
答案 1 :(得分:0)
因此,正如我在评论中提到的-由于某些原因,如果指定的模板不存在,easyadmin不会给出任何错误。因此,您只需要将新模板放置在templates
文件夹(例如templates/admin/listPlaces.html.twig
)中,然后在easyadmin的配置文件中指定正确的路径,例如:
entities:
Places:
class: App\Entity\Places
templates:
list: 'admin/listPlaces.html.twig'