laravel - как обновить дату доставки в таблицу и статус для каждого товара? - PullRequest
0 голосов
/ 04 марта 2020

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

enter image description here

Так что сейчас он может правильно получать данные, но я хочу разрешить панели выбрать дату и нажать кнопку Кнопка отправки для обновления таблицы в БД. После отправки даты ему не должно быть разрешено представлять какую-либо дату снова. В то же время я хочу разрешить им отправлять статус заказа, но они могут обновлять статус столько раз, сколько захотят.

Модель заказа:

class Order extends Model
{

    // Set table
    protected $table = 'orders';

    // Set timestamps
    public $timestamps = true;

    // Set primary key
    protected $primaryKey = 'order_id';

    // Set mass assignable columns
    protected $fillable = [];

    // Manys orders can belong to one user

    public function user()
    {
        return $this->belongsTo('App\Models\Users\User', 'user_id');
    }
}

Контроллер панели управления:

/**
 *  Controller to handle dashboard for panel
 */
class DashboardController extends Controller
{
    // Display all customer info related to panel on panel dashboard
    public function index()
    {
        $customerOrders = Order::all();

        return view('panel.panel')->with('customerOrders', $customerOrders);
    }
}

Panel.blade. php:

<table class="table table-light ">
    <thead class="thead-dark">
        <tr>
            <th scope="col">Order ID</th>
            <th scope="col">Delivery Date</th>
            <th scope="col">Order Info</th>
            <th scope="col">Order Status</th>
            <th scope="col">Purchase Order</th>
        </tr>
    </thead>
    <tbody>
        @foreach ($customerOrders as $customerOrder)
        <tr>
            <td>{{$customerOrder->order_id}}</td>
            <td><input class="date form-control" type="text" placeholder="select delivery date">
                <button onclick="myFunction()" id="myBtn">Submit Date</button>
            </td>
            <td>{{$customerOrder->product_name}}</td>
            <td>
                <select id="status" name="status">
                    <option value="inProgress">In Progress</option>
                    <option value="shipped">Order Shipped</option>
                    <option value="cancelled">Cancelled</option>
                    {{-- <input type="submit" value="Submit"> --}}
                </select>
                <button>Update Status</button>
            </td>
            <td>{{$customerOrder->purchase_order}}</td>
        </tr>
        @endforeach
    </tbody>
</table>    
<script>
    function myFunction() {
        document.getElementById("myBtn").disabled = true;
    }
</script>

Как мне выполнить sh это?

1 Ответ

1 голос
/ 04 марта 2020

В panel.blade. php, добавьте форму вокруг ваших входов:

<form id="form-id" method="GET" action="/dashboard">
    {{-- Add your inputs here --}}
</form>

В вашем контроллере добавьте параметр $ request, чтобы вы могли получить доступ к входам:

public function index(Request $request)
{
    $inputDate = $request->inputDate;

    // Code to access your database and return results
}

Вы также можете вернуть дату ввода или что-либо еще, чтобы знать, что ваши данные были отфильтрованы, а затем отключить это поле в вашем представлении.

return view('panel.panel')->with([
    'customerOrders' => $customerOrders,
    'inputDate' => $inputDate
]);

В вашем представлении вы можете отключить кнопку, если $inputDate установлено:

<button onclick="myFunction()" id="myBtn". {{ isset('$inputDate') ? 'disabled' : '' }}>Submit Date</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...