sql >> データベース >  >> RDS >> Mysql

Laravel53つの他のテーブルに属する新しいレコードの作成

    なぜそんなに複雑にするのかわかりませんか?

    これを試してください:

    ソリューション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);
    

    ソリューション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. コース完了時に外部データベースを更新します

    2. カーディナリティがパフォーマンスにどのように影響するかをご覧ください

    3. MariaDB JSON_ARRAY()の説明

    4. AndroidでPhoneGap/Cordovaを使用して事前入力されたSQLiteデータベースにアクセスできません