【问题标题】:Laravel blade, is this authorized?Laravel 刀片,这是授权的吗?
【发布时间】:2019-09-06 09:49:30
【问题描述】:

使用 Laravel 6,我想在视图中动态显示页面标题(“新”或“更新”)。但是,始终显示“创建学校”。当我调试时,$school->id 不包含“new”(而是一个 UUID)。这是呈现动态标题的最佳方式吗?

@section('title', $school->id === 'new' ? 'Create school' : 'Update school')

控制器

<?php

public function create()
{
    $school = new School();
    $school->id = 'new';
    $school->country_id = 'FR';
    
    return view('/school/form', ['school' => $school]);
}

public function edit(School $school)
{
    return view('/school/form', ['school' => $school]);
}

当我返回视图(创建和编辑的视图相同)时,我会发送空学校或学校。在视图中,我想仅通过 $school-&gt;id. 的测试显示“新”或“更新”

【问题讨论】:

  • 为什么你希望那个 id 包含 "new" ?可以发一份样本数据吗?
  • 首先你需要 print_f($school) 和你得到的输出来自控制台端的任何数据..?

标签: laravel laravel-blade laravel-6


【解决方案1】:

像下面那样做

@section('title)

    {{ $school->id === 'new' ? 'Create school' : 'Update school' }}

@stop
@section('othersection)
@endsection

create 下的控制器中 方法我想你需要调用save() 方法。也许您需要取决于您是否需要。我只想提一下

【讨论】:

    【解决方案2】:

    您可以使用isset() 函数。尝试创建该案例时不需要传递$school 变量

    @section('title', isset($school) ? 'Create school' : 'Update school')
    

    在控制器中

    public function create()
    {
        return view('/school/form');
    }
    
    public function edit(School $school)
    {
        return view('/school/form', ['school' => $school]);
    }
    

    编辑: 试试这个

    @php
        $title = isset($school) ? 'Create school' : 'Update school';
        // or other logic
    @endphp
    @section('title', $title)
    

    【讨论】:

    • 嗨。你的建议不会改变任何事情。似乎是 @section 内部的条件无法理解。
    【解决方案3】:

    我不认为您实际上是在创建一所新学校,因为您正在创建一个新的学校实例但您没有保存它 - 因此 ID 是唯一生成的 UUID 并且它没有被覆盖'新'。

    public function create()
    {
        $school = new School();
        $school->id = 'new';
        $school->country_id = 'FR';
    
        $school->save(); // add in this line
    
        return view('/school/form', ['school' => $school]);
    }
    

    您有学校的唯一标识符吗?拥有一个实际的唯一 ID 而不是“新的”可能会很有用——不过这只是一个建议。

    【讨论】:

      【解决方案4】:

      我明白发生了什么,是我混淆了我的 IDE 中的视图。一切正常,无论是 $scholl-&gt;id 为 null、'new' 还是其他。

      【讨论】:

        猜你喜欢
        • 2018-06-05
        • 2021-02-08
        • 2019-01-31
        • 2019-04-02
        • 1970-01-01
        • 2017-11-06
        • 2018-04-01
        • 2013-11-22
        • 2017-01-05
        相关资源
        最近更新 更多