通过父模型关系获取附加到模型的文件路径?

时间:2017-02-18 14:25:36

标签: php laravel eloquent octobercms

我有一个名为application的模型,它可以获取另一个名为resume的模型的关系。在简历模型中是进一步的关系,它具有文件的$ attachOne关系。

public $attachOne = [
    'resume' => ['System\Models\File','public' => false, 'delete' => true]
    ];

该应用程序附有一份简历,虽然$ belongsTo。

public $belongsTo = [
    'user' => ['RainLab\User\Models\User', 'table' => 'users'],
    'resume' => ['Acme\Job\Models\Resume']
    ];

我可以获取应用程序模型中的所有字段以进行恢复,例如user_id,display_name等,但是当我尝试访问附加的文件以恢复时,表示找不到列。以下是我在应用程序模型中访问Resume数据的内容。

resume:
    label: Resume File
    type: relation
    disabled: true
    select: display_name

我可以选择该表中的所有字段,但无法访问附加到恢复表的文件。有什么办法可以在应用程序模型中访问附加的系统文件吗?

1 个答案:

答案 0 :(得分:1)

您可以使用 partial 访问相关的模型附件,如下所示。

第1步。

设置您的fields.yaml

resume:
  label: Resume File
  type: partial
  path: $/acme/jobs/models/resume/_resume.htm
  1. 在简历的模型目录中创建部分内容以打印出文件的下载链接

  2. 在部分内部,您可以访问保存当前模型实例的$model变量(如果存在),例如:

  3. /acme/jobs/models/resume/_resume.htm

    <?php if ($model->resume->resume): ?>
     <div class="form-group  text-field span-full form-pad" data-field- name="resume" id="Form-field-resume-group">
        <div>
            <a href="<?= $model->resume->resume->getPath(); ?>">Download   resume</a>
        </div>
    </div>
    <?php endif; ?>