Метод создания перестал работать

У меня есть этот простой код

    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. Что не так?

Вы ничего не возвращаете. Наверное, поэтому показывает белую страницу.

Laerte 27.04.2018 14:47

Я знаю, но новой записи не создается. Это моя проблема.

MrBelongsTo 27.04.2018 14:48

Не могли бы вы показать свой метод создания?

Martin 27.04.2018 14:49

Перед созданием запроса дайте exit (); и попробуйте повторить что-нибудь, чтобы проверить Может ли ваш код дойти до этого места или нет.

Muthu17 27.04.2018 14:51

Я показываю свой метод создания выше.

MrBelongsTo 27.04.2018 14:53

Model :: create - стандартный метод в модели Eloquent. Если запись не создается, вероятно, проблема в свойствах модели, соответствующих столбцам таблицы или имени таблицы. Можете ли вы показать код использования модели?

S. Dev 27.04.2018 14:53

Да, я вижу ваш код создания. эхо что-то после завершения кода проверки. Просто чтобы проверить, что ваша страница остановлена ​​в самой части проверки

Muthu17 27.04.2018 14:54

Я не знаю, как показать код в комментарии (я новичок на этом сайте)

MrBelongsTo 27.04.2018 15:00

Я пробовал добавить dd ($ request-> all ()); в конце моего кода, и он работает.

MrBelongsTo 27.04.2018 15:03
$this->Validate($request здесь $request или $request->all()?
arun 27.04.2018 15:14

только запрос $. $ request-> all () я использовал для отображения данных из $ request. Это был всего лишь тест. Как я могу показать код в комментарии?

MrBelongsTo 27.04.2018 15:19

Отредактируйте свой вопрос с обновленными результатами. Там гораздо легче читать.

DevK 27.04.2018 15:25

Ваш код может дать сбой после проверки, убедитесь, что вы передаете все эти условия при проверке, возможно, попробуйте создать переменную печати после проверки, чтобы увидеть, получены ли переменные из запроса.

sam 27.04.2018 15:28

ОК. Работает, но проверяю мастером. В phpmadmin все ок. Но когда я пытаюсь выбрать последний добавленный мной элемент, $ latest = AdvWomen :: where ('user_id', Auth :: user () -> id) -> latest () -> first (); Он показывает мне только один элемент, который я добавил вручную в phpmyadmin. Почему?

MrBelongsTo 27.04.2018 15:31

Привет @MrBelongs Для начала проверьте, существует ли столбец базы данных create_at или нет, потому что самые последние и самые старые методы позволяют легко упорядочить результаты по дате. По умолчанию результат будет упорядочен по столбцу created_at.

Mayur Panchal 28.04.2018 06:50
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
15
76
2

Ответы 2

в вашем контроллере:

   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">&times;</span>
    </button>
  </p>
  @endforeach
@endif

Я думаю, вы пропустили самую важную часть: вернуться с ошибками, если проверка не удалась.

Namoshek 27.04.2018 15:45

Замените магазин, как показано ниже:

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();

}

Пожалуйста, объясните причину своего ответа.

Namoshek 27.04.2018 15:44

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