You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel博客模块前端如何将可见性状态0/1转为文字显示

Laravel博客文章状态显示问题解决

我在Laravel项目的博客模块中,给文章设置了公开(Public)和私有(Private)两种状态,数据库中用1表示公开、0表示私有,但现在视图里显示的是数字1/0,需要改成对应的文字Public/Private。以下是我当前的视图代码:

@foreach($blogs as $row)
    <tr>
        <td>{{$loop->iteration}}</td>
        <td><img src="{{asset('uploads/'.$row->photo)}}" alt="" class="imageSize"></td>
        <td>{{$row->title}}</td>
        <td>{!!$row->details!!}</td>
        <td>
            @if($row->visibility ==1 ? "Public" : "Private")@endif
            {{$row->visibility}}
        </td>
        <td>
            <a href="{{route('admin_blog_edit',$row->id)}}"  class="btn btn_primary uppercase">Edit</a>
            <a href="{{route('admin_blog_delete',$row->id)}}" class="btn btn_danger uppercase" onClick="return confirm('Are you sure?')">Delete</a>
        </td>
    </tr>
@endforeach

解决方法

方法1:直接在Blade中使用三元运算符

你当前的@if写法有误,直接用三元运算符替换即可,同时删除多余的数字输出:

<td>{{ $row->visibility == 1 ? 'Public' : 'Private' }}</td>

方法2:使用模型访问器(推荐)

在Blog模型中定义访问器,让字段自动返回对应的文字,视图中无需额外处理:

// app/Models/Blog.php
public function getVisibilityAttribute($value)
{
    return $value == 1 ? 'Public' : 'Private';
}

之后视图里直接写:

<td>{{ $row->visibility }}</td>

方法3:使用Blade的@if/@else语法

如果觉得三元运算符不够直观,也可以用条件判断:

<td>
    @if($row->visibility == 1)
        Public
    @else
        Private
    @endif
</td>

内容的提问来源于stack exchange,提问作者mchomvu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 23:32:39