Como substituir uma classe de modelo no PyroCMS (Laravel, PHP)?
Eu instaleiPyroCMS e estou ampliando-o para transformá-lo em um Sistema de Gerenciamento de Aprendizagem (LMS), onde apenas usuários logados podem visualizar as páginas, e as páginas também começam a ficar visíveis apenas um número variável de dias depois que um usuário se inscreve no curso.
(Ou seja, a Lição 1 do Módulo 1 pode ser desbloqueada e ficar visível imediatamente, mas a Lição 2 pode ser configurada para ficar oculta até 1 dia depois, e a Lição 3 pode ficar visível X dias depois, etc.)
Como consegui isso foi escrever um pacote Laravel com esta migração:
Schema::table('pages_pages', function (Blueprint $table) {
$table->string('drip_delay')->nullable()->after('str_id');
});
Eu então criei umDrippablePagesServiceProvider
classe com isso noboot()
função:
$this->app->bind('Anomaly\PagesModule\Http\Controller\PagesController', 'me\DrippablePages\PagesController'); //https://laravel.com/docs/5.6/container#binding
Eu projetei meu costumePagesController
para mostrar uma visualização especial sempre que o usuário conectado estiver tentando acessar uma página muito cedo. Essa funcionalidade está funcionando totalmente bem.
Mas, em vez de editar odrip_delay
campo diretamente no banco de dados como eu tenho feito, eu preferiria poder editar ao lado dos outros campos no URL / admin / pages / edit / 4.
Tenho certeza de que preciso substituir várias partes doPagesModule, como PageEntryFormSections (doc) E acho que tenho esse trabalho.
Mas, ao avançar com o Xdebug, vejo que o PageModel que é consultadoestá linha (via injeção de dependência? †) emedit()
dentroHttp\Controller\Admin\PagesController
ainda não mostra o meu novodrip_delay
campo.
Como posso substituir o PageModel ou fazer o que for necessário para que ele mostre odrip_delay
campo nesta visualização do painel do administrador?
† documentos do Laravel sobrerecipiente econtroladores implica isso.