Laravel 5.6 - смесь POST и AngularJS

Вопрос

Как мне правильно вывести от "number: 4" к "4" в лезвии Laravel при возврате данных angularjs из old()?

Сценарий

Я отправляю объект, используя маршрутизацию Laravel

<form method = "POST" action = "/pricestructures/create">

  <input name = "_method" type = "hidden" value = "POST">

  {{ csrf_field() }}

  <div class = "form-group">
    <label for = "">Name</label>
    <input type = "text" name = "name" class = "form-control" placeholder = "Name" required value = "{{old('name')}}" required>
  </div>

  <div class = "form-group">
    <label for = "">Client</label>
    <select name = "client_id" ng-model = "data.client_id" ng-options = "o.id as o.name for o in Clients" class = "form-control" required ng-change = "GetAssets()">
      <option value = "">Please select</option>
    </select>
  </div>

  <div class = "form-group">
    <label for = "">Asset</label>
    <select name = "asset_id" ng-model = "data.asset_id" ng-options = "o.id as o.name for o in Assets" class = "form-control" required ng-disabled = "!data.client_id">
      <option value = "">Please select</option>
    </select>
  </div>

  <div class = "form-group">
    <label for = "">Quantity</label>
    <input type = "number" name = "quantity" class = "form-control" placeholder = "Quantity" required min = "0" step = "1" value = "{{old('quantity')}}" required>
  </div>

  <div class = "form-group">
    <label for = "">Price</label>
    <input type = "number" name = "price" class = "form-control" placeholder = "Price" required min = "0" step = "0.01" value = "{{old('price')}}" required>
  </div>


  <div class = "form-group">
    <button type = "submit" class = "btn btn-primary">Save Changes</button>
  </div>

</form>

Эта форма находится в контроллере AngularJS 1.6, и я отслеживаю выбор client_id и загружаю соответствующие ресурсы, когда они меняются, с помощью GetAssets(). Поскольку для этого я использую AngularJS, я сохраняю значения полей client_id и asset_id в $ scope.

Точно так же, когда возвращаются какие-либо ошибки, я хотел бы использовать old() для повторного заполнения переменных $ scope.

$scope.data = {
    client_id: {{ old('client_id',0) }},
    asset_id: {{ old('asset_id',0)}}
};

Когда я отправляю форму, я вижу, что отправляемые данные «набираются», ну, значения, связанные с раскрывающимися списками выбора, в любом случае

Laravel 5.6 - смесь POST и AngularJS

Как уже упоминалось, если есть проблема с отправкой, я повторно заполняю форму отправленными данными с помощью old(), однако для переменных client_id и asset_id (то есть для Angular JS) мне возвращается «число: 1», и я не уверен, как Я превращаю это в «1».

Если мне случится хранить переменные angularjs в виде строк, они будут отправлены, например, как "строка: 1"

Рассматривали ли вы использование функции разнесения в php для разделения строки с использованием «:» в качестве разделителя. Затем верните нужную вещь в лезвие. Это нужно делать на контроллере php

Toby Okeke 28.08.2018 23:28

Привет, Тоби, да, я обдумал это, но полагаю, что это, вероятно, не «правильный» способ справиться с этим. «Типизация» явно преднамеренная, поэтому я полагаю, что есть способ ее декодирования (аналогично json_decode), однако я не уверен, что это за тип кодирования.

CT14.IT 29.08.2018 09:49
Стоит ли изучать 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
2
32
1

Ответы 1

в вашем контроллере попробуйте

$scope.data = {
    client_id: '{{ old('client_id',0) }}',
    asset_id: '{{ old('asset_id',0)}}'
};

просто установите двойные кавычки или одинарные кавычки, и появится реальное значение.

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