Рюкзак для laravel - Ошибка обновления строк - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь обновить строки некоторых таблиц на моем администраторе. Это работает с рюкзаком Crud. Я делаю некоторую отладку и заканчиваю это предложение в рюкзаке CrudController (vendor / backpack / crud / src / app / http / controllers / crudController - функция UpdateCrud).

$request->get($this->crud->model->getKeyName();

Это дает мне нулевое значение, когда я использую dd () для него. Таким образом, окончательный результат показывает ошибку 404, говорящую «Нет результатов запроса для модели [« Маршрут модели »]». Также я печатаю запрос на обновление и все поля в порядке, отправляя данные без проблем.

Я трачу 6 дней, пытаясь решить эту проблему, и не могу ее найти. Это часть моего кода, спасибо за ваше время.

Контроллер (я возобновляю некоторые поля, потому что их много)

class OperadoresCrudController extends CrudController {
  public function setup(){
    $this->crud->setModel('App\Models\Operador');
    $this->crud->setRoute("admin/operadores");
    $this->crud->setEntityNameStrings('operadores', 'operadores');
    $this->crud->enableExportButtons();

    /*
    |--------------------------------------------------------------------------
    | BASIC CRUD INFORMATION
    |--------------------------------------------------------------------------
    */

    //$this->crud->setFromDb();

    // ------ CRUD FIELDS
    // $this->crud->addField($options, 'update/create/both');
    // $this->crud->addFields($array_of_arrays, 'update/create/both');
    // $this->crud->removeField('name', 'update/create/both');
    // $this->crud->removeFields($array_of_names, 'update/create/both');

    $this->crud->addField([
      'name'  => 'nombre',
      'label' => 'Nombre *',
      'type'  => 'text',
      'wrapperAttributes' => [
        'class' => 'form-group col-md-7'
      ],
      'tab'  => 'Datos Generales'
    ]);

    $this->crud->addField([
      'name' =>  'rut',
      'label' => 'Rut',
      'type'  => 'text',
      'wrapperAttributes' => [
        'class' => 'form-group col-md-7'
      ],
      'tab'  => 'Datos Generales'
    ]);

    public function store(StoreRequest $request) {
      return parent::storeCrud();
    }

    public function update(UpdateRequest $request) {
      #dd($request);
      return parent::updateCrud();
    }
 }

Модель

class Operador extends Model {
  use CrudTrait;

/*
|--------------------------------------------------------------------------
| GLOBAL VARIABLES
|--------------------------------------------------------------------------
*/

  protected $table = 'operador';
  //protected $primaryKey = 'id';
  // public $timestamps = false;
  // protected $guarded = ['id'];
  protected $fillable = ['nombre','rut','direccion','telefono','email','comuna_id','url','region_id', 'area_operacion','op_nombre_responsable','op_direccion_responsable','op_telefono_responsable','op_email_responsable','created_at','updated_at'];
  // protected $hidden = [];
  // protected $dates = [];

/*
|--------------------------------------------------------------------------
| FUNCTIONS
|--------------------------------------------------------------------------
*/
  public function equipos() {
   return   $this->hasMany('App\Models\Equipo','operador_id');
  }

  public function comuna() {
    return $this->belongsTo('App\Models\Comuna');
  }

  //para insertar select region, prov, comuna
  public function region() {
    return $this->belongsTo('App\Models\Region');
  }

  // Estacion Operador.
  public function estaciones() {
    return $this->hasMany('App\Models\Estacion','operador_id');
  }
}

1 Ответ

0 голосов
/ 04 июля 2018

В вашем методе EntityCrudController::update() вы сможете использовать $this->crud->entry после вызова parent::updateCrud(). Так что это должно работать для вас, чтобы получить текущий идентификатор записи:

`` `

public function update(UpdateRequest $request)
{
    $redirect_location = parent::updateCrud();

    dd($this->crud->entry->id);

    return $redirect_location;
}

`` `

...