Как сохранить Eloquent Master Detail на той же странице, используя Laravel - PullRequest
0 голосов
/ 03 августа 2020

У меня есть две модели, блейд-страница и контроллеры для реализации главной-подробной страницы в Laravel -5.8. Я хотел бы знать, как я могу сохранить детализацию в базе данных.

Основная модель

namespace App;

use Illuminate\Database\Eloquent\Model;

class Order  extends Model
{
    protected $fillable = [
        'id',
        'name',
      ];

public function detail()
{
    return $this->hasMany('App\OrderDetail','order_id','id');
}   

Детальная модель

namespace App;

use Illuminate\Database\Eloquent\Model;

class OrderDetail extends Model
{
   protected $fillable = [
        'id',
        'order_id',
        'item',
        'total',
    ];
}

create.blade view

     <div class="row">
         <div class="clearix"></div>
        <div class="col-md-12">
            <div class="tile">
                <h3 class="tile-title">Order</h3>
                <div class="tile-body">
                    <form  method="POST" action="{{route('order.store')}}">
                        @csrf
                        <div class="form-group col-md-8">
                            <label class="control-label">Name</label>
                            <input name="name" class="form-control @error('name') is-invalid @enderror" type="text" placeholder="Enter Name">
                            @error('name')
                            <span class="invalid-feedback" role="alert">
                                    <strong>{{ $message }}</strong>
                                </span>
                            @enderror
                        </div>

                    <table class="table table-bordered">
                        <thead>
                        <tr>
                            <th scope="col">Item Name</th>
                            <th scope="col">Total</th>
                            <th scope="col"><a class="addRow"><i class="fa fa-plus"></i></a></th>
                        </tr>
                        </thead>
                        <tbody>
                        <tr>
                            <td><input type="text" name="item[]" class="form-control qty" ></td>
                            <td><input type="text" name="total[]" class="form-control price" ></td>
                            <td><a   class="btn btn-danger remove"> <i class="fa fa-remove"></i></a></td>
                         </tr>
                        </tbody>
                    </table>

                        <div>
                            <button class="btn btn-primary" type="submit">Submit</button>
                        </div>
                 </form>
                </div>
            </div>

@endsection



<script type="text/javascript">
    $(document).ready(function(){
        $('.addRow').on('click', function () {
            addRow();

        });

        function addRow() {
            var addRow = '<tr>\n' +
'                                <td><input type="text" name="item[]" class="form-control item" ></td>\n' +
'                                <td><input type="text" name="total[]" class="form-control total" ></td>\n' +
'                                <td><a   class="btn btn-danger remove"> <i class="fa fa-remove"></i></a></td>\n' +
 '                             </tr>';
            $('tbody').append(addRow);
        };

        $('.remove').live('click', function () {
            var l =$('tbody tr').length;
            if(l==1){
                alert('you cant delete last one')
            }else{

                $(this).parent().parent().remove();

            }

        });
    });

</script>

Контроллер

class OrderController extends Controller
{

    public function store(Request $request)
    {
        $order = new Order();
        $order->name = $request->order;
        $order->save();

         return redirect('order/'.$order->id)->with('message','Order created Successfully');
    }
}

Я успешно сохранил заказ. Как мне добавить в него oop OrderDetail. И для магазина, и для обновления?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...