Laravel Nova Action Fields - PullRequest
       15

Laravel Nova Action Fields

0 голосов
/ 17 октября 2018

РЕДАКТИРОВАТЬ:

в классе novas ActionEvent.php я отредактировал поля двух строк и исключения для функции forResourceUpdate:

Что странно, теперь мой ресурс обновляется, но ничего нетв таблице ACTION EVENT.

    public static function forResourceUpdate($user, $model)
{
    return new static([
        'batch_id' => (string) Str::orderedUuid(),
        'user_id' => $user->getKey(),
        'name' => 'Update',
        'actionable_type' => $model->getMorphClass(),
        'actionable_id' => $model->getKey(),
        'target_type' => get_class($model),
        'target_id' => $model->getKey(),
        'model_type' => get_class($model),
        'model_id' => $model->getKey(),
        'fields' => 'test',
        'status' => 'finished',
        'exception' => 'test',
    ]);
}

, поэтому я только что установил Nova, настроил некоторые ресурсы, все хорошо показывает, но когда я пытаюсь обновить любой из них, я получаю ошибку базы данных, которую не могу вставить NULLв ACTION_EVENT.FIELDS.

https://nova.laravel.com/docs/1.0/actions/defining-actions.html#action-fields

Док говорит, что я могу определить некоторые поля в функции полей Actions, но я не генерировал ни одного класса Action, который я бы хотел.Я думаю, что это своего рода логирование действий по умолчанию?

Могу ли я его отключить или мне нужно где-нибудь добавить несколько полей?

<?php

namespace App\Nova;

use Laravel\Nova\Fields\ID;
use Illuminate\Http\Request;
use Laravel\Nova\Http\Requests\NovaRequest;

class Chain extends Resource
{

    public static $category = "Stammdaten";

    /**
     * The model the resource corresponds to.
     *
     * @var string
     */
    public static $model = 'App\Model\System\Partner\Chain';

    /**
     * The single value that should be used to represent the resource when being displayed.
     *
     * @var string
     */
    public static $title = 'id';

    /**
     * The columns that should be searched.
     *
     * @var array
     */
    public static $search = [
        'id',
    ];

    /**
     * Get the fields displayed by the resource.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function fields(Request $request)
    {
        return [
            ID::make()->sortable(),
        ];
    }

    /**
     * Get the cards available for the request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function cards(Request $request)
    {
        return [];
    }

    /**
     * Get the filters available for the resource.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function filters(Request $request)
    {
        return [];
    }

    /**
     * Get the lenses available for the resource.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function lenses(Request $request)
    {
        return [];
    }

    /**
     * Get the actions available for the resource.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function actions(Request $request)
    {
        return [];
    }
}

И модель:

class Chain extends Model
{
    use SoftDeletes;
    use ObservantTrait;
    use TranslationTrait;

    protected $primaryKey = 'partner_chain_id';
    protected $table = 'tbl_prm_partner_chain';
    public $sequence = 'seq_partner_chain_id';

    const CREATED_BY = 'insert_user';
    const CREATED_AT = 'insert_timestamp';

    const UPDATED_BY = 'update_user';
    const UPDATED_AT = 'update_timestamp';

    const DELETED_BY = 'delete_user';
    const DELETED_AT = 'delete_timestamp';

    protected $fillable = ['name_text', 'partner_type_id'];

    protected $dates = ['delete_timestamp', 'insert_timestamp'];

Это все довольно просто, вот почему у меня нет подсказки, где я иду не так.

...