GOD_Nt

2231 经验值

问题描述:
表A:楼盘(new_houses)

| 字段| 备注 |
| -------- | -------- |
| id | ID |
| name | 名称 |
。。。。。

表B:户型图

| 字段| 备注 |
| -------- | -------- |
| id | ID |
| new_house_id | 楼盘ID |
| area | 面积 |
。。。

表C:报价

字段备注idIDnew_house_id楼盘IDprice每平米单价

。。。

A一对多B,A一对多C,
现在给出筛选条件,找出80-100万的楼盘(筛选时按表C的最新报价计算)。楼盘价格=户型面积*最新报价

我暂时有了一个解决方案。。。。
auth.php配置文件

'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'api' => [
            'driver' => 'passport',
            'provider' => 'users',
        ],
        'app' => [
            'driver' => 'passport',
            'provider' => 'members',
        ]
    ]
...
'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Models\Member::class,
        ],
        'members' => [
            'driver' => 'eloquent',
            'model' => App\Models\Member::class
        ],
        // 'users' => [
        //     'driver' => 'database',
        //     'table' => 'users',
        // ],
    ],

Models\User中

public function findForPassport($username) {
        try {
            return $this->where('phone', $username)->first();
        }catch(\Exception $e) {
            return Member::where('phone', $username)->first();
        }
    }

对应·\Laravel\Passport\Bridge\UserRepository·
···
public function getUserEntityByUserCredentials($username, $password, $grantType, ClientEntityInterface $clientEntity)

{
    if (is_null($model = config('auth.providers.users.model'))) {
        throw new RuntimeException('Unable to determine user model from configuration.');
    }

    if (method_exists($model, 'findForPassport')) {
        $user = (new $model)->findForPassport($username);
    } else {
        $user = (new $model)->where('email', $username)->first();
    }
    if (! $user ) {
        return;
    } elseif (method_exists($user, 'validateForPassportPasswordGrant')) {
        if (! $user->validateForPassportPasswordGrant($password)) {
            return;
        }
    } elseif (! $this->hasher->check($password, $user->password)) {
        return;
    }
    return new User($user->getAuthIdentifier());
}

···
你看我这样解决有什么隐患吗

现在我有两个用户系统分别对应两个表users(后台管理员),members(会员表).其中users表已使用passport实现页面的api请求。但是现在members想使用passport作为app的api请求该如何操作呢?

比如,一个B2B2C模式的商城,大B端可以上传商品。小B端也可以上传商品。C端可以购买。然后大B端可以审核和操作所有商品,小B只能操作自己的商品,这个操作流程如何实现呢?

现有两个模型文章(Post)评论(Comment),模型定义如下Post<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use YuanChao\Editor\EndaEditor; class Post e