Как использовать Delete в Laravel API Route

Я использую Laravel в качестве Backend и генерирую API с помощью JSON, и я использую php для получения данных json и удаления данных по маршруту api в laravel, но, похоже, он не работает. Мой маршрут API в laravel

Route::delete('articles/{article}', 'ArticleController@delete');

Мой Контроллер

public function delete(Article $article)
{
    $article->delete();
    return response()->json(null);
}

Мой URL-адрес API

http://192.168.0.21/api/articles/id

Мой код внешнего интерфейса PHP для удаления

$json = file_get_contents('http://192.168.0.21/api/articles/' . $id);
$json_data = json_decode($json, true);
unset($json_data['id']);

Любое решение для этого?

попробуйте передать только идентификатор, а затем получить запись и удалить ее. public function delete($id) { $article = Article::findOrFail($id); $article->delete(); return response()->json(null); }

Jigs1212 23.03.2018 05:27

@ Jigs1212 ты можешь дать ответ?

The Rock 23.03.2018 05:31

Что ты пытаешься сделать? Что не работает? Почему вы возвращаете null в json, а затем отключаете от него идентификатор? (которого все равно не существует). Пожалуйста, предоставьте дополнительную информацию

StyleSh1t 23.03.2018 05:32

@ StyleSh1t Я хочу удалить контент по идентификатору, но не могу его удалить

The Rock 23.03.2018 05:34

@ Jigs1212 Как я могу использовать маршрут удаления в PHP ??

The Rock 23.03.2018 05:38

Покажите нам, как вы вызываете вызов ajax или api ??

Jigs1212 23.03.2018 05:42
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
6
12 020
2

Ответы 2

Вы устанавливаете метод маршрута на DELETE, но запрашиваете его с помощью file_get_contents, то есть GET.

Вам нужно использовать завиток:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://192.168.0.21/api/articles/' . $id);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$result = json_decode($result);
curl_close($ch);

все еще могу удалить это

The Rock 23.03.2018 05:51

@The Rock не могли бы вы поделиться своим новым кодом? Есть ли ошибки?

StyleSh1t 23.03.2018 05:56

нет ошибок, но я не могу удалить данные, которые использую в своем маршруте

The Rock 23.03.2018 05:57

но когда я использую Postman и передаю этот URL-адрес и метод удаления, все в порядке

The Rock 23.03.2018 05:58

Donu установил curl на вашем сервере.

StyleSh1t 23.03.2018 06:00

Я не уверен, можете ли вы показать мне, как я могу установить завиток ??

The Rock 23.03.2018 06:01

а curl для чего нужен?

The Rock 23.03.2018 06:03

Какая у вас операционная система? Какой сервер вы используете? В любом случае, если ваши ошибки продолжаются, вы должны получить сообщение об этом. Убедитесь, что вы установили ошибки php, чтобы убедиться, что проблема в curl.

StyleSh1t 23.03.2018 06:03

Используйте этот ответ, чтобы найти свой php.ini: stackoverflow.com/a/13984489/3829526 и этот ответ, чтобы установить ошибки: stackoverflow.com/a/21429652/3829526

StyleSh1t 23.03.2018 06:09

Маршрут Передайте идентификатор в {id}, идентификатор записи, которую вы хотите удалить.

Route::delete('articles/{id}', 'ArticleController@delete');

ArticleController

public function delete($id) {
    $article = Article::findOrFail($id);
    if ($article)
       $article->delete(); 
    else
        return response()->json(error);
    return response()->json(null); 
}

ЗВОНОК AJAX

        $.ajax({
            url: BASE_URL + '/articles/'+ id,
            type: 'DELETE',
        })
        .done(function() {
            console.info("success");
        })
        .fail(function() {
            console.info("error");
        })
        .always(function() {
            console.info("complete");
        });

Все еще не могу удалить это

The Rock 23.03.2018 05:48

Как ты называешь маршрут?

Jigs1212 23.03.2018 05:49

$ json = file_get_contents ('192.168.0.21/api/articles'. $ id); $ json_data = json_decode ($ json, истина); отключено ($ json_data ['id']);

The Rock 23.03.2018 05:51

Как мой вопрос

The Rock 23.03.2018 05:51

Можете ли вы попробовать использовать вызов jquery ajax или вам нужен только php?

Jigs1212 23.03.2018 05:55

В чем ошибка? Как вы подтверждаете, удалена ли запись?

Jigs1212 23.03.2018 05:56

запись удалить из моей базы данных

The Rock 23.03.2018 06:00

но когда я использую Postman и передаю этот URL-адрес и метод удаления, все в порядке

The Rock 23.03.2018 06:00

Я не уверен, как работает file_get_contents, но попробуйте jquery ajax, поскольку запись удалена, попробуйте новые записи

Jigs1212 23.03.2018 06:01

Позвольте нам продолжить обсуждение в чате.

Jigs1212 23.03.2018 06:09

Другие вопросы по теме