$ php artisan make:model Address -m
migration file
{
        Schema::create('addresses', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('user_id')->unsigned()->nullable();
            $table->string('name');
            $table->timestamps();
        });
    }
$ php artisan migrate
User.php
public function address(){
        return $this->hasOne('App\Address');
    }
//data挿入
mysql> use onetoone;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+——————–+
| Tables_in_onetoone |
+——————–+
| addresses          |
| migrations         |
| password_resets    |
| users              |
+——————–+
4 rows in set (0.00 sec)
mysql> insert into users (name, email, password) values (‘peter’, ‘peter@gmail’, ‘1234’);
Query OK, 1 row affected (0.00 sec)
Address.php
class Address extends Model
{
    //
    protected $fillable = [
    	'name'
    ];
}
route.php
Route::get('/insert', function(){
	$user = User::findOrFail(1);
	$address = New Address(['name'=>'1234 Huston av NY NY 11218']);
	$user->address()->save($address);
});
mysql> select * from addresses;
+—-+———+—————————-+———————+———————+
| id | user_id | name                       | created_at          | updated_at          |
+—-+———+—————————-+———————+———————+
|  1 |       1 | 1234 Huston av NY NY 11218 | 2019-12-08 04:19:29 | 2019-12-08 04:19:29 |
+—-+———+—————————-+———————+———————+
1 row in set (0.00 sec)
$user->save();のところを、hasOneでは$user->address()->save($address);って書くんだ。I aint know what’s going on inside.
Route::get('/update', function(){
	$address = Address::where('user_id', 1)->first();
	$address->name = "4532 Updated new address";
	$address->save();
});
mysql> select * from addresses;
+—-+———+—————————+———————+———————+
| id | user_id | name                      | created_at          | updated_at          |
+—-+———+—————————+———————+———————+
|  1 |       1 | 4532 Updated new address  | 2019-12-08 04:19:29 | 2019-12-08 04:39:56 |
|  2 |       1 | 1234 Tokyo av NY NY 11218 | 2019-12-08 04:28:09 | 2019-12-08 04:28:09 |
+—-+———+—————————+———————+———————+
2 rows in set (0.00 sec)
updateは、対象のレコードを選択してsave();
read
Route::get('/read', function(){
	$user = User::findOrFail(1);
	return $user->address->name;	
});
delete
Route::get('/delete', function(){
	$user = User::findOrFail(1);
	$user->address()->delete();
	
});
	 
					 
