NON Auth::User ID 的 Laravel 回显

Posted

技术标签:

【中文标题】NON Auth::User ID 的 Laravel 回显【英文标题】:Laravel echo for a NON Auth::User ID 【发布时间】:2019-06-27 15:22:35 【问题描述】:

尝试解决以下问题:

我知道您可以通过 Auth::user()->email 在刀片中回显数据以获取电子邮件, Auth::user()-> name 获取名称,Auth::user()->id 获取用户 ID 等。这是针对当前登录用户的。

但我想要实现的是,如果我以基本的单字段形式在文本字段中输入“名称”,有什么方法可以让它动态显示与该“名称”相关的回声用户 ID,即使它不是 Auth::User 的 ID?

例如:用户 ID:1 'name' as ROGERHELLO 可以输入'name' POTATOHEAD 并让它回显它在页面上可见的相对 ID,可能是 ID:5?

我已经搜索过但似乎找不到明确的答案..希望这篇文章可以帮助其他人将来有类似的查询..

感谢您的帮助!

【问题讨论】:

这和认证有关系吗?看起来不像,所以我不知道你为什么会对 Auth::user() 如此感兴趣。为什么不直接使用 User 模型向用户查询匹配的名称? 您将不得不进行一个 ajax 调用,它将在您想要的任何地方填充一些文本。如果您知道我在说什么。例如,您键入名称 ROGER,如果该用户存在,它会回显该用户的 id 【参考方案1】:

我了解您希望能够搜索用户。如果是这种情况,试试这个:

//in Controller
public function search(Request $request)

    $keyword = $request->get('search');
    $data = [];

    if (!empty($keyword)) 
        //you can search for anything here
        $data['users'] = User::where('name', 'LIKE', "%$keyword%")
            ->orWhere('email', 'LIKE', "%$keyword%")
            ->orWhere('occupation', 'LIKE', "%$keyword%")
            ->get();
     else 
        //return a response to require an input 
    

    return view('users.search', $data);

您现在可以在返回的视图 (users.search) 上显示搜索结果。

【讨论】:

【参考方案2】:
<?php 

// Make an ajax request when you submit the frontend input form
// Send a post parameter 'username'

public function searchByUsername(Request $request)

    // Validate
    $request->validate([ 'username' => 'required|string']);

    // Search in username
    $userIds = User::where('name', 'LIKE', '%' . $request->username. '%')
        ->select('id')
        ->get();

    // Return json response for ajax
    return response()->json(compact($userIds), 200);

【讨论】:

【参考方案3】:

试试这个方法。它会很简单地出来

public function search()
    
        $search_phrase = Input::get('q');
        $search_results = User::where('name', 'like', '%' . $search_phrase . '%')->paginate(6);

        return view('search.users', compact('search_results', 'search_phrase'));
    

但你需要使用输入门面:

use Illuminate\Support\Facades\Input;

【讨论】:

以上是关于NON Auth::User ID 的 Laravel 回显的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Auth::user()->id 在 livewire 表单上返回 null

拉拉维尔 | Auth::user()->id 在 AppServiceProvider 中不起作用

Laravel 修改 Auth::user() 查询?

查看laravel auth / user对象中是否存在某些东西

如何在 ajax 函数调用的控制器中获取 Auth::user()

Laravel API Passport:从数组中获取 1 个参数:Auth::user()->token()