Использовать ввод из одного представления, чтобы распечатать результат в другом представлении - PullRequest
0 голосов
/ 10 мая 2019

Я хочу использовать ввод из формы в одном представлении и распечатывать результаты в другом представлении. Я получаю следующую ошибку: Неопределенная переменная: пользователи Заранее спасибо!

Форма (в виде «приборной панели»), которую я использую для получения адреса электронной почты:

...
<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]);
    }


}

Маршрут для отправки результата в представление 'userlist':

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

Наконец, представление 'userlist':

@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

Ответы [ 2 ]

2 голосов
/ 10 мая 2019

Изменение:

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]);
        }


    }

Вам не нужен $ при передаче имени переменной в представление.

0 голосов
/ 10 мая 2019

@ Райан Дж Поле правильно.Кроме того, вы можете передавать переменную разными способами.Такие как -

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

Или

return view('userlist', compact(users));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...