laravel检索特定数据

时间:2017-05-17 18:14:37

标签: laravel

我尝试输出用户发出的所有请求,并将其显示在laravel项目的个人资料页面中,
在我的家庭控制器中我有这个功能

public function profile()
{
    $requests = Requests::where('userid', '{{ Auth::user()->userid }}')->get();
    return view('profile');
}

并输出以下消息:

E:\ xampp \ htdocs \ test1 \ app \ Http \ Controllers \ HomeController.php第31行中的FatalErrorException: 未找到“App \ Http \ Controllers \ Requests”类

(第31行是上述函数的第一行)

这是我的个人资料.blade.php

@extends('layouts.app')

@section('content')
<div class="container">

        <div class="panel panel-default">
            <div class="panel-heading"><h1>Profile: {{ Auth::user()->f_name }}</h1></div>

            <div class="panel-body">
               @foreach ($requests as $requests)
                <ul>

                    <h4>Title: {{$requests->r_title}}</h4>
                    <h4>Author: {{$requests->r_author}}</h4>
                    <h4>Year: {{$requests->r_year}}</h4>
                    <h4>Condition: {{$requests->r_condition}}</h4>
                    <br/>
                </ul>

                @endforeach
            </div>
        </div>

    </div>
@endsection    

这是app文件夹中的Request.php页面

namespace App;

use Illuminate\Database\Eloquent\Model;

class Requests extends Model
{

protected $primaryKey = 'requestid';

 protected $fillable = [
   'userid', 'f_name', 'l_name', 'r_title', 'r_year', 'r_author', 'r_condition'
];


}

2 个答案:

答案 0 :(得分:0)

您需要通过以下方式将模型包含在控制器中:

use App\Requests;

其他方式是将profile()方法更改为:

public function profile()
{
    $requests = \App\Requests::where('userid', \Auth::user()->id)->get();
    return view('profile');
}

接下来,您可以通过以下方式将$requests传递给视图:

return view('profile', [
    'requests' => \App\Requests::where('userid', \Auth::user()->id)->get(),
]);

现在您可以访问刀片文件中的$ requests。 :)

答案 1 :(得分:0)

这样做。同时验证用户表是否具有userid,因为除非您已更改,否则默认为id

public function profile()
{
    $requests = \App\Requests::where('userid', auth()->user()->userid)->get();

    return view('profile')->with(['requests' => $requests]);
}