如何使用 Inertia::render 将某个模型的关系显示在表格中?

Posted

技术标签:

【中文标题】如何使用 Inertia::render 将某个模型的关系显示在表格中?【英文标题】:How to bring the relationships of a certain model to display them in a table with Inertia::render? 【发布时间】:2020-02-02 23:39:41 【问题描述】:

我正在尝试从控制器获取模型的关系,以便能够将关系显示为不是 id,而是显示为该 id 的名称或类型或任何可能的内容。在这种情况下,我试图获取与问题相关的信息,它具有什么响应类型(文本、多个、等级、是或否)以及属于哪个部分(名称)

到目前为止,这是我的控制器代码

public function index()

    return Inertia::render('Question/Index', [
        'survey_question' => SurveyQuestion::all(),
        'survey_section' => SurveySection::all(),
        'response_type' => ResponseType::all()
    ]);

vue中的表格

<el-table
    :data="tableData">
    <el-table-column
        prop="question"
        label="Pregunta">
    </el-table-column>

    <el-table-column
        label="Seccion">
        <template slot-scope="scope">
            <p>  scope.row.survey_section.title  </p>
        </template>
    </el-table-column>

    <el-table-column
        label="Tipo de Respuesta">
        <template slot-scope="scope">
            <p>  scope.row.response_type.type  </p>
        </template>
    </el-table-column>

    <el-table-column
        prop="optional"
        label="Opcional">
    </el-table-column>

    <el-table-column>
        <template slot-scope="scope">
                <div class="btn-link-edit action-button" @click="edit(scope.row)">
                    <i class="fas fa-pencil-alt"></i>
                </div>
                <div class="btn-link-delete action-button" @click="delete(scope.row)">
                    <i class="fas fa-trash"></i>
                </div>
        </template>
    </el-table-column>
</el-table>

这带来了我认为的关系,因为当我创建一个新问题时,我有一个选择选项,它确实显示了名称而不是 id,但是当我尝试在表格中显示所述名称时,我只能访问身份证。

我也想知道如何显示可选字段而不是 0 或 1,是或否。如果重要的话,这个字段是表结构中的一个布尔值。

如果我这样做 scope.row ,那么我会得到信息,但只有这样的问题

 "id": 1, "question": "asdfasdf", "survey_section_id": 1, "response_type_id": 1, "optional": 1 

我想要的是,当我执行 scope.row 时,我还会从这些 id 中获得另一个数组,其中包含与该 id 相关的信息,包括来自部分和响应类型的信息。

【问题讨论】:

您如何转换数据并不明显,因此很难为您提供帮助。在这种情况下,scope 变量是什么?您是否在您的示例中迭代 survey_question 道具?请包含相关文件的完整文件。 【参考方案1】:

你应该在 eloquent 模型中使用with 方法。例如:

$result = Model::with(['nameOfTheRelationShip'])->get();

【讨论】:

以上是关于如何使用 Inertia::render 将某个模型的关系显示在表格中?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 VBA 中使用 Excel 的内置模函数 (MOD)?

北斗GPS双模定位两点的间距如何求???急急急。。。

如何在 JavaScript 中使用模运算符 (%)? [复制]

如何将另一台Ubuntu DC服务器加入到Samba4 AD DC实现双域控主机模

在没有模运算符的Java中测试偶数

双模手机如何获取CDMA卡的IMSI号?