Мой код такой:
public function functionA(Request $request)
{
...
if($request->get('data')) {
//echo '<pre>';print_r($request->get('data'));echo '</pre>';die();
$data = json_decode($request->get('data'), true);
$data = collect($data['data']);
$this->validate($data, [
'id'=>'required|numeric',
'quantity'=>'required|numeric',
]);
$input = $data->only('id', 'quantity','request_date');
...
}
}
Результат echo '<pre>';print_r($request->get('data'));echo '</pre>';die();
как это :
{ «Данные»: { «идентификатор»: 46, «количество»: 1, «всего»: 100000, «информация»: «челси», «название»: «опасности», «request_date»: «14-08-2017
16:26:00 «},» истек «:» 2017-08-14T06: 27: 00.738Z «}
Если код выполнен, существует ошибка, подобная этой:
Ошибка типа: аргумент 1 передан
App \ Http \ Controllers \ Controller :: validate () должен быть экземпляром
Осветить \ Http \ Request, …
Как я могу решить ошибку?
Первый параметр передан validate
должен быть примером Illuminate\Http\Request
,
Так что вам нужно пройти $request
Возражать validate
метод в качестве первого параметра, как это
$this->validate($request, [
'validation' => 'rules',
]);
Если вы получаете ввод как JSON, убедитесь, что Content-Type
заголовок запроса установлен в application/json
Пример jQuery ajax
$.ajax({
url: url,
type: 'POST',
data: {
'id': 'value',
'quantity': 'value'
},
dataType: 'json',
contentType: 'application/json'
});
Если вы используете use Request;
в вашем контроллере, а затем заменить его,
use Illuminate\Http\Request;