Laravel được tạo tại và cập nhật tại không hoạt động

Chúng ta sẽ sử dụng phương thức updateOrCreate[] để chèn hoặc cập nhật mục bên trong bảng sinh viên. Phương pháp này sẽ đảm nhiệm việc chèn bản ghi nếu nó không tồn tại hoặc nó sẽ cập nhật bản ghi nếu nó đã tồn tại

cú pháp

Cú pháp của updateOrCreate[] như sau −

$flight = Model::updateOrCreate[
   ['field1' => 'value'],
   [field=>value, field1=>value]
];

Giá trị đầu tiên trong mảng được sử dụng để tìm kiếm trong bảng nếu nó tồn tại, và nếu không, nó sẽ chèn giá trị hoặc nó sẽ cập nhật cho khớp của các tham số đầu tiên trong mảng

Hãy để chúng tôi thử một ví dụ sử dụng nó

'Arbaaz'], ['age'=> 40,'email'=>'arbaaz@gmail.com', 'address'=>'xyz'] ]; } }

Vì không có tên phù hợp. Arbaaz trong bảng sinh viên, giá trị được chèn vào bảng

đầu ra

Đầu ra của đoạn mã trên là -

+----+---------------+------------------+---------------------+---------------------+---------+------+ 
| id |    name       |        email     |     created_at      |     updated_at      | address | age  | 
+----+---------------+------------------+---------------------+---------------------+---------+------+ 
| 1  | Siya Khan     | siya@gmail.com   | 2022-05-01 13:45:55 | 2022-05-01 13:45:55 | xyz     | 20   | 
| 2  | Rehan Khan    | rehan@gmail.com  | 2022-05-01 13:49:50 | 2022-05-01 13:49:50 | xyz     | 18   |
| 3  | Rehan Khan    | rehan@gmail.com  | NULL                | NULL                | testing | 20   | 
| 4  | Rehan         | rehan@gmail.com  | NULL                | NULL                | abcd    | 15   | 
| 5  | Nidhi Agarwal | nidhi@gmail.com  | NULL                | NULL                | abcd    | 20   | 
| 6  | Ashvik Khanna | ashvik@gmail.com | NULL                | NULL                | oooo    | 16   | 
| 7  | Viraj Desai   | viraj@gmail.com  | NULL                | NULL                | test    | 18   | 
| 8  | Priya Singh   | priya@gmail.com  | NULL                | NULL                | test123 | 20   | 
| 9  | Arbaaz        | arbaaz@gmail.com | 2022-05-29 14:11:09 | 2022-05-29 14:11:09 | xyz     | 40   | 
+----+---------------+------------------+---------------------+---------------------+---------+------+

ví dụ 2

Cập nhật bằng phương thức updateOrCreate[]

Chúng tôi đã cố gắng chèn một giá trị vì nó không tồn tại, bây giờ chúng ta hãy thử ví dụ để cập nhật bản ghi trong bảng

'Rehan'], ['age'=> 50] ]; } }

Trong ví dụ trên, chúng tôi đang cố gắng cập nhật tuổi 50 cho tên Rehan

đầu ra

Đầu ra của đoạn mã trên là -

+----+---------------+------------------+---------------------+---------------------+---------+------+
| id | name          |      email       |         created_at  |    updated_at       | address |  age |
+----+---------------+------------------+---------------------+---------------------+---------+------+
| 1  | Siya Khan     | siya@gmail.com   | 2022-05-01 13:45:55 | 2022-05-01 13:45:55 | xyz     | 20   |
| 2  | Rehan Khan    | rehan@gmail.com  | 2022-05-01 13:49:50 | 2022-05-01 13:49:50 | xyz     | 18   |
| 3  | Rehan Khan    | rehan@gmail.com  | NULL                | NULL                | testing | 20   |
| 4  | Rehan         | rehan@gmail.com  | NULL                | 2022-05-29 14:17:02 | abcd    | 50   |
| 5  | Nidhi Agarwal | nidhi@gmail.com  | NULL                | NULL                | abcd    | 20   |
| 6  | Ashvik Khanna | ashvik@gmail.com | NULL                | NULL                | oooo    | 16   |
| 7  | Viraj Desai   | viraj@gmail.com  | NULL                | NULL                | test    | 18   |
| 8  | Priya Singh   | priya@gmail.com  | NULL                | NULL                | test123 | 20   |
| 9  | Arbaaz        | arbaaz@gmail.com | 2022-05-29 14:11:09 | 2022-05-29 14:11:09 | xyz     | 40   |
+----+---------------+------------------+---------------------+---------------------+---------+------+

ví dụ 3

Sử dụng updateOrInsert[] với DB Facade để cập nhật

Để sử dụng mặt tiền DB, bạn cần sử dụng lớp. sử dụng Chiếu sáng\Hỗ trợ\Mặt tiền\DB; . DB Facade là một công cụ xây dựng truy vấn được sử dụng trong Laravel. Sử dụng nó, bạn có thể thử tất cả các truy vấn SQL

updateOrInsert[['age'=>40],['name'=>'Arbaaz Khanna', 'email'=>'arbaaz@gmail.com', 'address'=>'testing', 'age'=>'35']]; } }

Trong trường hợp trên, nó sẽ tìm kiếm trong bảng các cặp khóa/giá trị được cung cấp trong các thông số đầu tiên, nếu có một bản ghi phù hợp, bản ghi tương tự sẽ được cập nhật hoặc quá trình chèn sẽ diễn ra

đầu ra

Đầu ra của đoạn mã trên là

+----+---------------+------------------+---------------------+---------------------+---------+------+
| id |      name     |       email      |      created_at     |      updated_at     | address | age  |
+----+---------------+------------------+---------------------+---------------------+---------+------+
| 1  | Siya Khan     | siya@gmail.com   | 2022-05-01 13:45:55 | 2022-05-01 13:45:55 | xyz     | 20   |
| 2  | Rehan Khan    | rehan@gmail.com  | 2022-05-01 13:49:50 | 2022-05-01 13:49:50 | xyz     | 18   |
| 3  | Rehan Khan    | rehan@gmail.com  | NULL                | NULL                | testing | 20   |
| 4  | Rehan         | rehan@gmail.com  | NULL                | 2022-05-29 14:17:02 | abcd    | 50   |
| 5  | Nidhi Agarwal | nidhi@gmail.com  | NULL                | NULL                | abcd    | 20   |
| 6  | Ashvik Khanna | ashvik@gmail.com | NULL                | NULL                | oooo    | 16   |
| 7  | Viraj Desai   | viraj@gmail.com  | NULL                | NULL                | test    | 18   |
| 8  | Priya Singh   | priya@gmail.com  | NULL                | NULL                | test123 | 20   |
| 9  | Arbaaz        | arbaaz@gmail.com | 2022-05-29 14:11:09 | 2022-05-29 14:11:09 | testing | 35   |
+----+---------------+------------------+---------------------+---------------------+---------+------+

Ví dụ 4

Sử dụng updateOrInsert[] với DB Facade để chèn

Ở đây chúng tôi đang kiểm tra xem tên. Niketan Vaahi có mặt trong bảng, nếu không, bản ghi với các chi tiết được cung cấp trong thông số thứ hai sẽ được chèn vào

Chủ Đề