как использовать отношение ajax с laravel 5.8? - PullRequest
0 голосов
/ 18 июня 2020

В Laravel, для связи с ajax в файле, размещает контроллер данных / ProductController. php выглядит следующим образом, например:

public function addProduct(Request $request)
{
    $products = new Product;
    $products->title = $request->title;
    $products->brands = $request->brands;
    $products->gender = $request->gender;
    $products->category_id = $request->category;
    $products->subcategory_id = $request->subcategory;
    $products->description = $request->description;
    $products->save();

    return response()->json($products);
}

В Laravel, для связи с ajax в лезвии файла. php выглядит следующим образом, например:

@foreach ($products as $product)
    <tr id="id_{{$product->id}}">
        <td>{{$loop->iteration}}</td>
        <td>
            <input type="hidden" id="product_id" value="{{$product->id}}">
            {{$product->title}}
        </td>
        <td>{{$product->brands}}</td>
        <td>{{$product->gender}}</td>
        <td>{{$product->category ? $product->category->name : ""}}</td>
        <td>{{$product->subcategory ? $product->subcategory->parent : ""}}</td>
        <td>
            <a href="javascript:void(0)" class="btn btn-info" id="show_btn_product" data-id="{{ $product->id }}">
                <i class="fa fa-eye"></i>
            </a>
            <a href="javascript:void(0)" class="btn btn-danger delete-product" id="delete-product" data-id="{{ $product->id }}">
                <i class="fa fa-trash"></i>
            </a>
        </td>
    </tr>
@endforeach

Но в ajax с laravel как это сделать?

if ($("#productForm").length > 0) {
    $("#productForm").validate({

        submitHandler: function (form) {

            var actionType = $('#btn-save').val("create_product");
            $('#btn-save').html('Sending..');

            $.ajax({
                type: "POST",
                url: "{{route('add_product')}}",
                data: $('#productForm').serialize(),
                dataType: 'json',
                success: function (data) {
                    var products =
                        '<tr id="id_' + data.id + '"><td>' + data.id + '</td><td>' + data.category.name + '</td><td>' + data.subcategory.parent + '</td><td>
                    products += '<td colspan="2"><a href="javascript:void(0)"" class="btn btn-info" id="show_btn_product" data-id="{{ $product->id }}"><i class="fa fa-eye"></i></a>';
                    products += '<a href="javascript:void(0)" id="delete-product" data-id="' + data.id + '" class="btn btn-danger delete-product"><i class="fa fa-trash"></i></a></td></tr>';
                    if (actionType) {
                        $('#table_product').prepend(products);
                    } else {
                        $("#id_" + data.id).replaceWith(products);
                    }

                    $('#productForm').trigger("reset");
                    $('#exampleModal').modal('hide');
                    $('#btn-save').html('Save Changes');

                },
                error: function (data) {
                    console.log('Error:', data);
                    $('#btn-save').html('Save Changes');
                }
            });
        }
    });
}

Будет это случилось?

'</td><td>'+ data.category.name + '</td><td>'+ data.subcategory.parent + '</td><td>

пожалуйста, помогите мне

1 Ответ

0 голосов
/ 18 июня 2020

Повторите попытку с:

public function addProduct(Request $request)
{
    $products = new Product;
    $products->title = $request->title;
    $products->brands = $request->brands;
    $products->gender = $request->gender;
    $products->category_id = $request->category;
    $products->subcategory_id = $request->subcategory;
    $products->description = $request->description;
    $products->save();
    $products->load(['category', 'subcategory']);
    return response()->json($products);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...