【问题标题】:Use input from one view to print result into another view使用来自一个视图的输入将结果打印到另一个视图
【发布时间】:2019-05-10 16:05:52
【问题描述】:

我想在一个视图中使用来自表单的输入并将结果打印到另一个视图中。我收到以下错误:未定义的变量:用户提前致谢!

我用来获取电子邮件地址的表单(在名为“仪表板”的视图中):

...
<div class="search">
            <header><h3>Search Friend</h3></header>
            <form action="{{ route('search.friend') }}" method="post">
                <div class="form-group">
                    <input class="form-control" type="text" name="email" id="email" placeholder="Friend's email">
                </div>
                <button type="submit" class="btn btn-primary">Post</button>
                <input type="hidden" value="{{ Session::token() }}" name="_token">
            </form>
        </div>
...

将数据从“仪表板”发送到控制器的路由:

Route::post('/searchfriend',[
        'uses' => 'FriendController@getSearchFriend',
        'as' => 'search.friend',
        'middleware' => 'auth'
    ]);

我使用电子邮件查找用户的控制器:

class FriendController extends Controller
{
    public function getSearchFriend(Request $request)
    {
        $this->validate($request,[
            'email' => 'required | email'
        ]);

        $email = $request['email'];
        $users = User::where('email',$email)->get();

        return view('userlist',['$users' => $users]);
    }


}

将结果发送到“用户列表”视图的路由:

Route::get('/userlist',[
        'uses' => 'FriendController@getSearchFriend',
        'as' => 'userlist',
        'middleware' => 'auth'
    ]);

最后是“用户列表”视图:

@extends('layouts.master')

@section('title')
    Users
@endsection

@section('content')
    <section class="row new-post">
        <div class="col-md-6 col-md-offset-3">
            <header><h3>Users</h3></header>
            <div class="userlist">
                <header><h2>Click to Add Friend</h2></header>
                @foreach($users as $user)
                    <a href="" class="" id="">Name: {{ $user->username }}</a>
                @endforeach
            </div>
        </div>
    </section>
@endsection

【问题讨论】:

    标签: php html laravel


    【解决方案1】:

    变化:

    class FriendController extends Controller
        {
            public function getSearchFriend(Request $request)
            {
                $this->validate($request,[
                    'email' => 'required | email'
                ]);
    
                $email = $request['email'];
                $users = User::where('email',$email)->get();
    
                return view('userlist',['$users' => $users]);
            }
    
    
        }
    

    到:

    class FriendController extends Controller
        {
            public function getSearchFriend(Request $request)
            {
                $this->validate($request,[
                    'email' => 'required | email'
                ]);
    
                $email = $request['email'];
                $users = User::where('email',$email)->get();
    
                return view('userlist',['users' => $users]);
            }
    
    
        }
    

    将变量名传递给视图时不需要$。

    【讨论】:

      【解决方案2】:

      @Ryan J Field 是正确的。此外,您可以通过许多不同的方式传递变量。比如——

      return view('userlist')->with('users', $users);
      

      或者,

      return view('userlist', compact(users));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-24
        • 1970-01-01
        相关资源
        最近更新 更多