【问题标题】:Laravel echo for a NON Auth::User IDNON Auth::User ID 的 Laravel 回显
【发布时间】: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

标签: php laravel


【解决方案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;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-15
        • 1970-01-01
        • 2021-11-04
        • 1970-01-01
        • 2023-02-04
        • 2017-03-17
        • 1970-01-01
        • 2020-04-16
        相关资源
        最近更新 更多