在Laravel中循环通过用户数据中的枚举值

vxqlmq5t  于 2023-06-24  发布在  其他
关注(0)|答案(1)|浏览(129)

我想从DetailUser模型中获取枚举数据。但它显示我的错误
尝试读取字符串上的属性“productive_status”
我该怎么弥补?这是我的代码:

edit.blade.php

<select name="productive_status"id="productive_status" class="form-control select2" required>
     <option value="{{ '' }}" disabled selected>Choose</option>
           @foreach($detail_user as $key => $detail_user_item)
     <option value="{{ $detail_user_item->productive_status }}" {{ $detail_user_item->productive_status == $detail_user->productive_status ? 'selected' : '' }}>{{ $detail_user_item->productive_status }}</option>
           @endforeach
</select>

@if($errors->has('productive_status'))
    <p style="font-style: bold; color: red;">{{ $errors->first('productive_status') }}</p>
@endif

*DetailUser.php

protected $fillable = [
        'user_id',
        'type_user_id',
        'contact',
        'address',
        'pgps',
        'start_work_date',
        'years_of_service',
        'productive_status',
        'job_contract',
        'document',
        'created_at',
        'updated_at',
        'deleted_at'
    ];

UserController.php

$role = Role::all()->pluck('title','id');
        $type_user = TypeUser::orderBy('name', 'asc')->get();
        $user->load('role');
        $detail_user = DetailUser::find($user['id']);

        return view('pages.backsite.management-access.user.edit', compact('user', 'role', 'type_user','detail_user'));

DetailUserTable.php

$table->enum('productive_status', ['Productive','Pre Retirement','Retired'])->nullable();
0s0u357o

0s0u357o1#

要修复此问题,请确保在UserController.php中检索DetailUser模型示例,而不仅仅是用户ID:
php复制代码$detail_user = DetailUser::where('user_id',$user->id)->first();通过使用first()方法而不是find()方法,可以检索与用户ID关联的DetailUser示例。
此外,通过更新控制器中的compact()方法,确保$detail_user变量被正确地传递给视图:
php复制代码返回视图('pages.backsite.management-access.user. edit',compact('user','role','type_user','detail_user'));在进行这些调整之后,$detail_user变量应该包含DetailUser模型示例,并且您应该能够访问Blade模板中的productive_status属性而不会遇到错误。

相关问题