簡體   English   中英

如何使用當前登錄的用戶預填 voyager BREAD 表格?

[英]How to prefill voyager BREAD form with currently logged in user?

[已解決] 我的 Laravel 5.7 項目中有一個簡單的列表,並使用 voyager 管理其數據。 我想制作一個完全有效的created_bylast_edit_by BREAD 表,但仍然不知道獲取當前登錄的用戶。

我目前使用帶有復制粘貼原始代碼的自定義視圖(資源/視圖/供應商/航海者),但仍然使用原始 VoyagerBreadController.php 並進行一些額外的導入。

?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Auth\AuthManager;
use Illuminate\Support\Facades\Auth;
use Auth\Illuminate\Foundation\Auth\AuthenticatesUsers;
use App\Wisata;
use App\User;

namespace App\Http\Controllers\Voyager;

use TCG\Voyager\Http\Controllers\VoyagerBreadController as BaseVoyagerBreadController;

class VoyagerBreadController extends BaseVoyagerBreadController
{
    //
}

並且能夠在我的自定義視圖上執行此操作

//get currently logged user
@php
  $currentUser = Auth::user()->nama;
@endphp

//printed output(for testing)
 {{$currentUser}}

它有效!,所以我嘗試像這樣設置 BREAD 選項

{
    "default" : "{{$currentUser}}"
}

但是,與我的自定義視圖不同,它不返回 $currentUser 值,只是在我的表中返回簡單的 {{$currentUser}}。

請幫我制作一個功能齊全的created_bylast_edit_by表。

注意:我可以使用任何軟件包。

編輯:它通過在我的自定義視圖(edit-add.blade.php)中復制真實動態表單正下方的表單來解決,制作隱藏類型created_bylast_edited_by表並將 BREAD 選項保持為空。 您仍然可以毫無問題地調整可見性。

//created_by form
<div class="form-group hidden  col-md-12 "><input type="hidden" class="form-control" name="created_by" placeholder="Created By" value="{{$currentUser}}"></div>
//last_edited_by form
<div class="form-group hidden  col-md-12 "><input type="hidden" class="form-control" name="last_edited_by" placeholder="Last Edited By" value="{{$currentUser}}"></div>

無論如何,如果有人提供更有效的解決方案,我仍然會非常感激:)

您可以向模型添加其他屬性,而無需更改視圖文件中的任何內容。

只需在相應的 Model 類中添加save()方法並分配其他屬性即可。

模型

public function save(array $options = [])
{
    if (Auth::user()) {
        $this->created_by = Auth::user()->getKey();
        //you may use user's name or any other property
        $this->updated_by = Auth::user()->name;
    }

    return parent::save();
}

這將在保存新模型記錄時添加created_byupdated_by 您可以根據需要向save()方法添加其他邏輯。

在 Laravel 8 中測試 [並且也應該在 5.7 中工作]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM