通过在初始化模型对象之前检查字段值来返回不同的属性?

时间:2019-05-30 12:21:10

标签: laravel eloquent laravel-5.8

如何通过对表中所请求记录的不同字段的值执行不同的检查来返回模块对象初始化的不同属性。我无法在模型__constructor()中使用它。有关更多详细信息,请参见我的older question。例如,我有许多不同的帖子类型,它们需要不同的属性。在我的模型中,我有type字段,我必须在初始化之前检测该字段并将其附加到响应中。

我很累:

public function __construct() {
    switch ($_GET['type']) {
        case 'company':
            $this->needs = [
                'name',
                'slogan',
                'logo',
                'location',
                'contacts',
                'employees',
                'vacancy',
                'skills'
            ];
            $this->customWith = ['jobs', 'branches'];
            break;
        case 'vacancy':
            $this->needs = [
                'title',
                'price',
                'schedule',
                'employment',
                'experience',
                'location',
                'skills',
                'company',
                'date'
            ];
            $this->customWith = ['company'];
            break;
    }
    if(is_array($this->needs) && count($this->needs)) {
        $this->appends = array_merge($this->appends, $this->needs);
        $this->with = array_merge($this->with, $this->customWith);
    }
}

但这不能正常工作。例如,当我请求帖子类型vacancy并向$with数组进行加载时,请添加company关系对象,然后company对象也会返回vacancy对象属性。 / p>

您有什么建议?如何正确执行操作,以便为每种类型的帖子返回不同的属性。

0 个答案:

没有答案