Laravel 關聯查詢 ——一對一 簡單例子

最閒的碼農發表於2018-11-06

首先建立出我們們所需要的檔案

//user控制器
php artisan make:controller UserController
//user模型
php artisan make:model Models/User
//user詳情
php artisan make:model Models/Userinfo

編輯UserController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\User;

class UserController extends Controller
{
    //物件轉陣列
    public function Arr($obj)
    {
        return json_decode(json_encode($obj), true);
    }

    public function show()
    {
        $infoObj = User::find(1/*欄位id*/)->Userinfo()->get();
        $infoArr = $this->Arr($infoObj);
        var_dump($infoArr);
    }
}

新增個訪問路由

Route::get('/show','UserController@show');

編輯user模型

    <?php

    namespace App\Models;

    use Illuminate\Database\Eloquent\Model;

    class User extends Model
    {
        protected $table = 'user';//表名

         // 表明模型是否應該被打上時間戳 (表中有created_at和updated_id欄位 true 沒有false )
        public $timestamps = false;

        public function Userinfo()
        {
            //關聯的模型類名, 關係欄位
            return $this->hasOne('App\Models\Userinfo','user_id');
        }
    }

編輯UserInfo模型

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Userinfo extends Model
{
    protected $table = 'user_info';//表名

    public $timestamps = false;
}

最後訪問http://127.0.0.1:8081/show
一對一方法:hasOne()
詳情請看文件https://laravelacademy.org/post/9584.html

相關文章