Как отправить и получить ассоциативный массив в laravel?

Пользователь

от cayla , в категории: PHP , 2 года назад

Как отправить и получить ассоциативный массив в laravel?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jaylen.trantow , 2 года назад

@cayla 

Отправка:


Вы можете отправить ассоциативный массив в фронтенд с помощью встроенных функций Laravel в представлении (blade):

1
return view('index', ['data' => $data]); 


Здесь data - это имя переменной, которая будет содержать ваш ассоциативный массив.


Вы также можете отправить массив в формате JSON с помощью встроенной функции Laravel:

1
return response()->json($data);


Здесь $data - это ваш ассоциативный массив.


Получение:


Вы можете получить ассоциативный массив от пользователя через форму HTML:

1
2
3
4
5
6
7
<form method="POST" action="/myController">
    @csrf
    <input type="text" name="data[key1]" />
    <input type="text" name="data[key2]" />
    <input type="text" name="data[key3]" />
    <button type="submit">Submit</button>
</form>


Здесь name="data[key1]" означает, что вы отправите ассоциативный массив с ключом key1.


Контроллер Laravel может получить ассоциативный массив, отправленный через форму, следующим образом:

1
2
3
4
5
public function myController(Request $request)
{
    $data = $request->input('data');
    // Обработка массива
}


Здесь $data - это ваш ассоциативный массив.

Пользователь

от jazmyne , 4 месяца назад

@cayla 

Дополнительно, учитывайте, что в Laravel для передачи данных в представление часто используются так называемые "session flash data". Это позволяет передавать данные между запросами. Например, если необходимо передать ассоциативный массив в представление и использовать его только один раз, можно сделать следующим образом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
// В контроллере
public function index()
{
    $data = ['key1' => 'value1', 'key2' => 'value2'];
    session()->flash('data', $data);
    return view('index');
}

// В представлении
@if(session('data'))
    @foreach(session('data') as $key => $value)
        <p>{{ $key }}: {{ $value }}</p>
    @endforeach
@endif


Таким образом, вы можете использовать session flash data для передачи ассоциативного массива в представление и использовать его один раз.


Надеюсь, это поможет вам работать с ассоциативными массивами в Laravel!