За последние 24 часа нас посетили 16449 программистов и 1289 роботов. Сейчас ищут 1093 программиста ...

как правильно передать по API через библиотеку axios данные в контролер?

Тема в разделе "Laravel", создана пользователем smash_old, 2 фев 2023.

  1. smash_old

    smash_old Новичок

    С нами с:
    25 сен 2022
    Сообщения:
    7
    Симпатии:
    0
    хотел сделать добавление в избранное без перезагрузки страницы, но столкнулся с проблемой, того, что точно не знаю как правильно принять данные от клиента, написал что-то такое, не работает.

    HTML:
    HTML:
    1.  
    2. <form method="POST">
    3.     @csrf
    4.     <button class="getFavorites" onclick="this.classList.toggle('heart-icon')">    
    5.       <input type="hidden" value="{{$card->id}}" class="favoritesId" name="card_id">
    6.     </button>
    7.     </form>
    8.  
    Обработчик:

    Код (Javascript):
    1.    
    2. <script type="javascript">
    3. document.querySelectorAll('.getFavorites').forEach(button => {
    4.         button.addEventListener('click', (event) => {
    5.             event.preventDefault();
    6.             const favoritesId = event.target.closest('.favoritesId').value;
    7.             console.log(favoritesId)
    8.  
    9.             axios.post('/formuls/favorites-add', {
    10.                 card_id: favoritesId
    11.             })
    12.                 .then(res => {
    13.                     if (res) {
    14.                         console.log(res);
    15.                     }
    16.                 })
    17.                 .catch(err => {
    18.                     if (err) {
    19.                         alert('Упс, произошла ошибка')
    20.                     }
    21.                 })
    22.         });
    23.     });
    Контроллер:
    PHP:
    1. namespace App\Http\Controllers;
    2.  
    3. use Illuminate\Http\Request;
    4. use App\Models\User;
    5. use App\Models\Favorite;
    6.  
    7. class FavoritesController extends Controller
    8. {
    9.     public function store(Request $request)
    10.     {
    11.         $formul_id = $request->input('card_id');
    12.         $favorite = new Favorite;
    13.         $favorite-> user_id = session('user_id');
    14.         $favorite-> formul_id = $formul_id;
    15.         $favorite-> updated_at = date("Y-m-d H:i:s");  
    16.         $favorite-> created_at = date("Y-m-d H:i:s");  
    17.         $favorite-> save();
    18.     }
    19. }
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.850
    Симпатии:
    745
    Адрес:
    Татарстан
    Ну посмотрите в консоли, наверняка 419 отшиба, так как всё post/put/delete запросы должны идти с csrf токеном


    Особо в ваш код не вникал, но много ненужных и непонятных вещей. Типа поля created_at, updated_at они автоматически заполняются если в модели указать это... Итд