簡體   English   中英

我沒有在 Backpack Laravel 上使用內聯創建獲得“添加按鈕”

[英]I don't get "add button" with inline create on Backpack Laravel

按照本文檔: 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,
        ];
    }
}

我認為錯誤在於您的 Filed 定義:

$this->crud->addFields([ /其他情況/ [ 'name' => 'invoiceLines', 'type' => 'relationship', 'tags'=> 'invoice lines', 'ajax'=>true, [ // 指定單數實體 'entity' => 'invoiceLine', // 單數實體 ] ],

由於關系與許多人有關(我猜),那么提交的文件應該是:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM