【问题标题】:I don't get "add button" with inline create on Backpack Laravel我没有在 Backpack Laravel 上通过内联创建获得“添加按钮”
【发布时间】:2020-10-31 01:43:49
【问题描述】:

遵循本文档:https://backpackforlaravel.com/docs/4.1/crud-operation-inline-create 我尝试在发票(主要)和发票行(次要)之间创建链接。 该链接看起来不错,但我没有成功获得具有辅助表单所需的“+添加”按钮。

我的代码。

主类(invoiceCrudController)

<?php

namespace App\Http\Controllers\Admin;

use App\Models\Invoice;
use Backpack\CRUD\app\Http\Controllers\CrudController;

/**
 * Class InvoiceCrudController
 * @package App\Http\Controllers\Admin
 * @property-read \Backpack\CRUD\app\Library\CrudPanel\CrudPanel $crud
 */
class InvoiceCrudController extends CrudController
{
    use \Backpack\CRUD\app\Http\Controllers\Operations\ListOperation;
    use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
    use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
    use \Backpack\CRUD\app\Http\Controllers\Operations\ShowOperation;
    use SetAccesses;
    
    protected function setupCreateOperation()
    {
        $this->crud->setValidation(InvoiceRequest::class);

        $this->crud->addFields([
            /*other cases*/
            [
                'name' => 'invoiceLines',
                'type' => 'relationship',
                'tags'=> 'invoice lines',
                'ajax'=>true,
                [ // specify the entity in singular
                    'entity' => 'invoiceLine', // the entity in singular
                ]
            ],

        ]);
    }

    protected function setupUpdateOperation()
    {
        $this->setupCreateOperation();
    }
}

二级类(invoiceLinesController)

<?php

namespace App\Http\Controllers\Admin;

use App\Models\InvoiceLine;
use Backpack\CRUD\app\Http\Controllers\CrudController;

/**
 * Class InvoiceCrudController
 * @package App\Http\Controllers\Admin
 * @property-read \Backpack\CRUD\app\Library\CrudPanel\CrudPanel $crud
 */
class InvoiceLinesCrudController extends CrudController
{
    use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
    use \Backpack\CRUD\app\Http\Controllers\Operations\InlineCreateOperation;

    public function setup()
    {
        $this->setAccesses('invoiceLine');
        $this->crud->setModel('App\Models\InvoiceLine');
        $this->crud->setRoute(config('backpack.base.route_prefix') . '/invoiceLine');
        $this->crud->setEntityNameStrings('invoiceLine', 'invoiceLines');

        $this->crud->addColumns([
            [
                'name' => 'slug',
                'type' => 'text',
            ],
            [
                'name' => 'quantity',
                'type' => 'number',
                'default' => 1,
                'wrapper' => [
                    'class' => 'form-group col-sm-6 col-md-6 col-lg-3 col-xl-3'
                ]
            ],
            [
                'name' =>'unit_vat_excluded',
                'type' => 'text',
                'wrapper' => [
                    'class' => 'form-group col-sm-6 col-md-6 col-lg-3 col-xl-3'
                ]
            ]
        ]);
    }

    protected function setupListOperation()
    {
        $this->crud->enableExportButtons();

        CustomerCrudController::addFilterCustomer();
    }

    protected function setupCreateOperation()
    {
        $this->crud->addFields([
            [
                'name' => 'slug',
                'type' => 'text',
                'allows_null' => false,
            ],
            [
                'name' => 'quantity',
                'type' => 'number',
                'default' => 1,
                'wrapper' => [
                    'class' => 'form-group col-sm-6 col-md-6 col-lg-3 col-xl-3'
                ]
            ],
            [
                'name' =>'unit_vat_excluded',
                'type' => 'text',
                'wrapper' => [
                    'class' => 'form-group col-sm-6 col-md-6 col-lg-3 col-xl-3'
                ]
            ]
        ]);
    }

    protected function setupUpdateOperation()
    {
        $this->setupCreateOperation();
    }

    protected function setupShowOperation()
    {

    }

    public static function getColumn()
    {
        return [
            'name' => 'invoice_line_id',
            'label' => 'InvoiceLines',
            'type' => 'select',
            'entity' => 'invoiceLine',
            'attribute' => 'pretty_print',
            'model' => InvoiceLine::class,
        ];
    }
}

【问题讨论】:

    标签: php laravel laravel-backpack


    【解决方案1】:

    我认为您的归档定义有误:

    $this->crud->addFields([ /其他情况/ [ '名称' => 'invoiceLines', '类型' => '关系', 'tags'=> '发票行', 'ajax'=> 真, [ // 以单数形式指定实体 'entity' => 'invoiceLine', // 单数实体 ] ],

    由于关系涉及很多(我猜),那么归档应该是:

    [
        'type' => "relationship",
        'name' => 'invoiceLines', 
        'ajax' => true,
        'inline_create' => true, 
    ]
    

    【讨论】:

      猜你喜欢
      • 2021-06-20
      • 2017-05-10
      • 2020-02-02
      • 2021-04-28
      • 1970-01-01
      • 2012-04-29
      • 1970-01-01
      • 2020-08-10
      • 1970-01-01
      相关资源
      最近更新 更多