微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php-Laravel,使用中间件查找域,然后使用域行获取网站行.

我想使用一些中间件从网站表中获取一行,该行在我的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模型,除了hasOne部分之外,它可以正常工作:

<?PHP

    namespace App;

    use Illuminate\Database\Eloquent\Model;

    class Domains extends Model
    {

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

    }

hasOne部分正在生成以下查询

UnkNown column ‘websites.domains_id’ in ‘where clause’ (sql: select * from websites where websites.domains_id = 2 and websites.domains_id is not null limit 1)

但是,我需要它进行查询

SELECT * FROM websites WHERE id = 1

其中1来自“域”表中的website_id列.

解决方法:

将网站方法更改为:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐