Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Laravel 5 Tạo một bản ghi mới thuộc về 3 bảng khác

Tôi không hiểu tại sao lại làm cho nó phức tạp như vậy?

hãy thử cái này:

Giải pháp 1

$User = User::find(Auth::id()); 
if(!$User) {
    return 'no user';
}

$Region = Region::find($request->input('region_id'));
if(!$Region) {
    return 'no region';
}

$locationData = $request->only('street_address', 'city', 'province', 'country', 'postal_code');
$Location = Location::firstOrCreate($locationData);

$rentalData = [
    'user_id' => $User->id, 
    'region_id' => $Region->id, 
    'location_id' => $Location->id
];
$Rental = Rental::firstOrCreate($rentalData);

Giải pháp 2

// ->remember() for caching request to prevent many queries, for faster result use apc cache in config files, no need to use memcache when You're using 1 app server

if(!User::where('id', '=', Auth::id())->remember(1440)->exists()) {
    return 'no user';
}

if(!Region::where('id', '=', $request->input('region_id'))->remember(1440)->exists()) {
    return 'no user';
}

$locationData = $request->only('street_address', 'city', 'province', 'country', 'postal_code');
$Location = Location::firstOrCreate($locationData);

$rentalData = [
    'user_id' => $User->id, 
    'region_id' => $Region->id, 
    'location_id' => $Location->id
];
$Rental = Rental::firstOrCreate($rentalData);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LỖI 1356 (HY000):Xem các tham chiếu của 'mysql.user' không hợp lệ (các) bảng hoặc (các) cột hoặc (các) hàm hoặc bộ định nghĩa / người gọi của chế độ xem thiếu quyền sử dụng chúng

  2. Tệp .PDF lớn Không tải lên cơ sở dữ liệu MySQL dưới dạng BLOB trung bình Qua PHP, tệp dưới 2MB Hoạt động tốt

  3. Làm cách nào để kiểm tra xem hai phạm vi ngày có trùng nhau trong mysql hay không?

  4. Công thức cơ sở dữ liệu đầu bếp mysql không thành công trên tệp lớn

  5. Dump Tệp MySQL 5.6.10