Как проверить, существуют ли данные в laravel - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть форма, в которой пользователь может вводить город и отправлять. Я сделал простую логику, чтобы избежать дублирования одного и того же города. У меня есть имя ввода = миграция города и города с именем столбца и create_by_id, и я также использовал город с одним ко многимотношения с номерами.Моя модель для города называется TotalCity.и в моем контроллере указано имя города. Я выполнил эту логику

class QuickController extends Controller 
{
    public function logic(Request $request)
    {
       if(TotalCity::where('name',$request->city)->exists())
       {
         $city = TotalCity::where('name',$request->city)->value('id');
       }
       else {
          $city = TotalCity::create(['name'=>$request->city']);   

`}}}

Этот код все еще не работает, и я также использовал метод firstOrCreate, но он также работает

То, что я хотел сделать, - это если введенные данные существуют, я хочу принять их значение 'id' или If может получить все их тоже нормально, а если не существует, создает новое !!!

Каксделай это

Ответы [ 3 ]

1 голос
/ 30 апреля 2019

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

public function logic(Request $request)
{
   $this->validate($request, [
      city => 'required|unique:tableName.column',
   ]);

   $city = new TotalCity;
   $city->name = $request->city;
   $city->save();
}

Надеюсь, это поможет.

1 голос
/ 30 апреля 2019

firstOrCreate - это то, что вам нужно

В вашем случае:

TotalCity::firstOrCreate([
  'name' => $request->city
]);
1 голос
/ 30 апреля 2019

вы можете попробовать или поделиться полным кодом вашего контроллера

else{
 $city = new TotalCity;
 $city->name = $request->city;
 $city->save();
}
...