У меня есть этот простой код
public function store(Request $request)
{
$this->Validate($request, [
'name' => 'required|min:3|max:20',
'age' => 'required|integer|between:18,99',
'height' => 'required|integer|between:120,230',
'weight' => 'required|integer|between:30,150',
'region' => 'required|integer',
'city' => 'required',
'phone' => 'required|integer'
]);
Person::create([
'name' => $request->name,
'age' => $request->age,
'height' => $request->height,
'weight' => $request->weight,
'city_id' => $request->city,
'region_id' => $request->region,
'phone' => $request->phone,
'user_id' => Auth::user()->id
]);
}
Этот код перестает работать, но не показывает ошибку. У меня только белая страница. Этот код работал раньше. И запись не создает. Что случилось? @редактировать Сейчас работает, но ... В phpmyadmin все ок. Новые записи добавляются аккуратно, но tinker показывает мою единственную запись, которую я добавил вручную в phpmyadmin. Если я попытаюсь выбрать самую последнюю добавленную мной запись:
$latest = Person::where('user_id', Auth::user()->id)->latest()->first();
Он показывает мне этот единственный элемент, который я создал в phpmyadmin. Что не так?
Я знаю, но новой записи не создается. Это моя проблема.
Не могли бы вы показать свой метод создания?
Перед созданием запроса дайте exit (); и попробуйте повторить что-нибудь, чтобы проверить Может ли ваш код дойти до этого места или нет.
Я показываю свой метод создания выше.
Model :: create - стандартный метод в модели Eloquent. Если запись не создается, вероятно, проблема в свойствах модели, соответствующих столбцам таблицы или имени таблицы. Можете ли вы показать код использования модели?
Да, я вижу ваш код создания. эхо что-то после завершения кода проверки. Просто чтобы проверить, что ваша страница остановлена в самой части проверки
Я не знаю, как показать код в комментарии (я новичок на этом сайте)
Я пробовал добавить dd ($ request-> all ()); в конце моего кода, и он работает.
$this->Validate($request здесь $request или $request->all()?
только запрос $. $ request-> all () я использовал для отображения данных из $ request. Это был всего лишь тест. Как я могу показать код в комментарии?
Отредактируйте свой вопрос с обновленными результатами. Там гораздо легче читать.
Ваш код может дать сбой после проверки, убедитесь, что вы передаете все эти условия при проверке, возможно, попробуйте создать переменную печати после проверки, чтобы увидеть, получены ли переменные из запроса.
ОК. Работает, но проверяю мастером. В phpmadmin все ок. Но когда я пытаюсь выбрать последний добавленный мной элемент, $ latest = AdvWomen :: where ('user_id', Auth :: user () -> id) -> latest () -> first (); Он показывает мне только один элемент, который я добавил вручную в phpmyadmin. Почему?
Привет @MrBelongs Для начала проверьте, существует ли столбец базы данных create_at или нет, потому что самые последние и самые старые методы позволяют легко упорядочить результаты по дате. По умолчанию результат будет упорядочен по столбцу created_at.






в вашем контроллере:
public function store(Request $request)
{
$this->validate($request, [
'name' => 'required|min:3|max:20',
'age' => 'required|integer|between:18,99',
'height' => 'required|integer|between:120,230',
'weight' => 'required|integer|between:30,150',
'region' => 'required|integer',
'city' => 'required',
'phone' => 'required|integer'
]);
Person::create([
'name' => $request->name,
'age' => $request->age,
'height' => $request->height,
'weight' => $request->weight,
'city_id' => $request->city,
'region_id' => $request->region,
'phone' => $request->phone,
'user_id' => Auth::user()->id
]);
return redirect()->back()->with('success','Person Created');
}
в вашем виде лезвия:
@if (count($errors) > 0)
@foreach ($errors->all() as $error)
<p class = "alert alert-danger alert-dismissible fade show" role = "alert">{{ $error }}
<button type = "button" class = "close" data-dismiss = "alert" aria-label = "Close">
<span aria-hidden = "true">×</span>
</button>
</p>
@endforeach
@endif
Я думаю, вы пропустили самую важную часть: вернуться с ошибками, если проверка не удалась.
Замените магазин, как показано ниже:
public function store(Request $request) {
$this->Validate($request->all(), [
'name' => 'required|min:3|max:20',
'age' => 'required|integer|between:18,99',
'height' => 'required|integer|between:120,230',
'weight' => 'required|integer|between:30,150',
'region' => 'required|integer',
'city' => 'required',
'phone' => 'required|integer'
]);
$person= new Person();
$person->username= $request['username'];
$person->age = $request['age'];
$person->height = $request['height'];
$person->weight = $request['weight'];
$person->region = $request['region'];
$person->city = $request['city'];
$person->phone = $request['phone'];
$person->save();
}
Пожалуйста, объясните причину своего ответа.
Вы ничего не возвращаете. Наверное, поэтому показывает белую страницу.