Данные не могут обновляться при отправке - PullRequest
0 голосов
/ 13 апреля 2019

У меня есть таблица, похожая на эту таблицу, имя которой pr_item. Я хочу обновить элемент_кода, полученный от 'непринятого' до 'принятого'.

.обновленный код элемента должен быть таким же, как pr_number, но когда я нажимаю код кнопки обновления, он не работает, не отображает ошибку, ничего не влияет на базу данных, просто возвращает перенаправление на страницу

enter image description here

это мой контроллер

 $item = ItemPR::where('item_code', '=', $item_code)->get();

    foreach($item as $data){
    $items = ItemPR::where('pr_number', '=', $data->item_code)->get();
   $update = $items->update(['receive' => 'received']); 

    }
    return redirect()->back();

это моя форма действия

 <form action="{{route('inventory.receivedAll')}}" method="POST" enctype="multipart/form-data">
              {{ csrf_field() }}
              <input type="hidden" name="pr_item" value="$pr_item">
              <button type="submit">
                  <i class="fa fa-check-circle" aria-hidden="true"></i>
              </button>
            </form>

это мои маршруты

    Route::post('warehouse-inventory/receivedAll', 'ExpedisiController@receivedAll')->name('inventory.receivedAll');

это ItemPR Model

 class ItemPR extends Model
{
    protected $table = 'pr_item';
    protected $primaryKey = 'pr_item';

    public  $timestamps = FALSE;

    protected $fillable = [
        'pr_item', 'pr_number', 'item_code', 'pr_qty','price'
    ];

    public function items()
    {
        return $this->belongsTo('\App\ModelMTOItem');
    }

    public function pr()
    {
        return $this->belongsTo('\App\DocumentPR');
    }
}

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

Ответы [ 3 ]

0 голосов
/ 13 апреля 2019

Вы пытаетесь неправильно выполнить условие

where('pr_number', '=', $data->item_code)

и выполнить обновление при сборе.Вы можете попробовать это:

Заменить

 $item = ItemPR::where('item_code', '=', $item_code)->get();

foreach($item as $data){
  $items = ItemPR::where('pr_number', '=', $data->item_code)->get();
  $update = $items->update(['receive' => 'received']); 

}

на

ItemPR::where('item_code', $item_code)->update(["receive" => 'received']); 

Добавить столбец "receive" в $ fillable:

protected $fillable = [
    'pr_item', 'pr_number', 'item_code', 'pr_qty','price', 'receive'
];
0 голосов
/ 13 апреля 2019

Чтобы обновить все ItemPR, в которых pr_item совпадает с $item_code, сделайте столбец с receive до received.

В вашем контроллере сделайте следующее:

$item = ItemPR::where('item_code', $item_code)->update(['receive' => 'received]);

Кроме того, в вашей форме есть небольшая ошибка:

Эта строка:

<input type="hidden" name="pr_item" value="$pr_item">

Должно быть как показано ниже:

<input type="hidden" name="pr_item" value="{{old('pr_item')}}">

0 голосов
/ 13 апреля 2019

Вы можете обновить его напрямую. Просто измените его следующим образом.

$item = ItemPR::where('item_code', '=', $item_code)->get();

foreach($item as $data){
    $items = ItemPR::where('pr_number', '=', $data->item_code)->update(['receive' => 'received']); 
}
return redirect()->back();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...