в laravel как использовать оператор @if в представлении для проверки состояния базы данных, чтобы оно скрывало / отображало некоторый контент в зависимости от условия - PullRequest
0 голосов
/ 16 января 2020

это home.blade. php файл

   @foreach($userview as $userview){
                    @if($userview = [{"role_code": "auv_recommend"}]){
                        <center>
                            <div class="box">
                                <div class="dropdown">
                                    <button class="btn btn-secondary dropdown-toggle" type="button" data-toggle="dropdown" data-submenu aria-expanded="false">AUV</button>
                                    <div class="dropright dropdown-menu" x-placement="bottom-start" style="position: absolute; will-change: transform; top: 0px; left: 0px; transform: translate3d(14px, 60px, 0px);">
                                        <button class="dropdown-item" type="button"><a tabindex=" -1" href="create">CREATE</a></button>
                                            <button class="dropdown-item dropdown-toggle test1" type="button" data-toggle="dropdown">VIEW</button>
                                            <div class="dropdown-menu dropright">
                                                <button class="dropdown-item" type="button"><a tabindex="-1" href="pendinglistSH">Awaiting Approval</a></button>
                                                <button class="dropdown-item" type="button"><a tabindex=" -1" href="reports">Reports</a></button>
                                            </div>


                                        </div>


                                </div>
                            </div>
                            </center>}

это контроллер для возврата к исходному виду, созданному как автономный для аутентификации

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Session;

class HomeController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Contracts\Support\Renderable
     */
    public function index(){

        $userview = Session::get('userview');
        return view('home')->with($userview);
    }

    public function login()
    {
        return view('auth.login');
    }
}


это контроллер входа в систему, отвечающий за аутентификацию пользователя и вставку данных в сеанс

<?php

namespace App\Http\Controllers\Auth;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Database\Eloquent\Collection;
use App\User;
use App\userprofile;


class LoginController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Login Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles authenticating users for the application and
    | redirecting them to your home screen. The controller uses a trait
    | to conveniently provide its functionality to your applications.
    |
    */

    use AuthenticatesUsers;

    /**
     * Where to redirect users after login.
     *
     * @var string
     */
    protected $redirectTo = '/home';


    public function login(Request $request) {

        $request->validate( [
            'username' => 'required',
            'password'=> 'required',
        ]);

        // $input = $request->all();
        // $input['password'] = md5($input['password']);

        $execsys_data = array(
            'username' => $request->get('username'),
            'password' => $request->get('password')
        );


        if (Auth::attempt($execsys_data)) {
            $request->session()->put('authenticated',true);
            $request->session()->put('username');
            $request->session()->put('section');
            $request->session()->put('firstname');

            //     SELECT role_code FROM `userprofiles`

            // inner join roleprofiles on roleprofiles.profile_code = userprofiles.profile_code

            // WHERE username = 'sumbu'
            $userview = userprofile::where([
                ['userprofiles.username', '=', Auth::user()->username]
            ])
            ->join('roleprofiles', 'roleprofiles.profile_code', '=', 'userprofiles.profile_code')
            ->get('roleprofiles.role_code');

            return($userview);


            // $request->session()->put('userview', $userview);

            // if ($request->session()->has($userview))

            return redirect('home')->with($userview);
                    // echo($userview);

            }
        else {
            return back()->with('error', 'Wrong Credentials');
        }
    }

    // public function create()
    // {
    //     return view('pages.create');
    // }


    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
        // $this->middleware('guest:create')->except('logout');

        $this->middleware(function ($request, $next) {
            $this->user = Auth::user();
            // $this->user = Auth::roleprofile();
        //    $this->username = Auth::guard('api')->username;
            return $next($request);

        });

    }

    public function username()
    {
        return 'username';
    }

    public function getRememberToken()
    {
        return $this->user['remember_token'];
    }

    public function getUserview()
    {
        return $this->userview;
    }

    public function logout(Request $request)
        {
        // $request->session()->forget('authenticated');
        // $request->session()->forget('username');
        // $this->middleware('guest')->except('logout');
        $request->session()->flush();
        return redirect('auth.login');

    }



}

, а также как получить значение столбца только без возврата массива, чтобы я мог использовать его для проверки своего состояния, я попытался вставить переменная $ userview в сеансе, чтобы я мог получить ее на go на другом контроллере и попытаться вызвать переменную с домашнего контроллера, но она не удалась

1 Ответ

0 голосов
/ 16 января 2020

Чтобы ответить на ваш первый вопрос, вы можете получить нужные данные в методе, который отвечает за обслуживание вашего представления. Например, если это будет ваша домашняя страница, то это будет index().

Пример:

public function index(){

   $userview = Session::get('userview');

   // Example data
   $yourData = DB::table('users')->where('name', 'John')->first();

   // Pass an array as second argument to view to pass more data, or you 
   // can chain ->with calls
   return view('greetings', ['userview' => $userview, 'yourdata' => $user]);
}

Затем вы можете использовать userview и yourdata в вашем index просмотр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...