我想使用一些中间件从website表中获取一行,该行在我的domains表中被引用。
到目前为止,这是我的中间件:

<?php

    namespace App\Http\Middleware;

    use App\Domains;
    use Closure;

    class Domain
    {
        /**
         * Handle an incoming request.
         *
         * @param  \Illuminate\Http\Request  $request
         * @param  \Closure  $next
         * @return mixed
         */
        public function handle($request, Closure $next)
        {

            $domainRow = Domains::where([ 'domain' => $_SERVER['HTTP_HOST'] ])->first();

            dd($domainRow->website);

            return $next($request);
        }
    }

这是我的Domains模型,除了有一个部分外,它工作得很好:
<?php

    namespace App;

    use Illuminate\Database\Eloquent\Model;

    class Domains extends Model
    {

        public function website()
        {
            return $this->hasOne('App\Website');
        }

    }

hasone部分正在生成以下查询:
“where子句”中的未知列“websites.domains\u id”(sql:select*fromwebsiteswherewebsitesdomains_id=2且websitesdomains_id不为空限制1)
不过,我需要它做的查询是:
从id=1的网站中选择*
其中1来自域表中的website_id列。

最佳答案

将网站方法更改为:

public function website()
{
    return $this->belongsTo('App\Website');
}

09-25 17:12