试图获得非对象的属性 - 使用laravel

时间:2018-04-19 15:58:04

标签: sql database laravel

我正在开发一个大学项目,我正在尝试选择所有级别与经过身份验证的用户级别相同的项目。我收到错误“试图获取非对象的属性”。我试过在这里查看其他问题,但到目前为止没有运气。提前致谢。

如果您需要我显示更多代码,我可以在此处添加。

控制器

        <?php

    namespace App\Http\Controllers;

    use Illuminate\Http\Request;

    // use App\Http\Requests;

    use DB;

    class Downloadcontroller3 extends Controller
    {
        //

        public function downfunc() {


         $downloads=DB::table('lessons')->where('level', auth()->user()->level)->get();
                    return view('download.viewfile3', compact('downloads'));



        }

       }

viewfile

<table class="table table-striped">


                    <thead>

                        <th> Title </th>
                        <th> Upload Date & Time </th>
                        <th> Level </th>
                        <th> Action </th>


                    </thead>

                    <tbody>

                        @foreach($downloads as $down)


                        <tr>

                            <td> {{$down->name}} </td>
                            <td> {{$down->created_at}} </td>
                            <td> {{$down->level}} </td>
                            <td> 

                            <a href="/~B00657229/workspace/COM559/prototype/test/storage/app/public/upload/{{$down->name}}"download="{{$down->name}}"> 

                            <button type="button" class="btn btn-primary">

                            <i class="glyphicon glyphicon-download"> Download </i>

                            </button>

                            </a>

                            </td>

                        </tr>





                        @endforeach


                    </tbody>

                </table>

2 个答案:

答案 0 :(得分:1)

确保您已登录。 用户对象返回null,因为没有用户会话。 如果你正在使用模型,你可以稍微整理一下;

public function downfunc() {

     $user = Auth::user();
     $downloads = Lesson::where('level', $user->level)->get();
     return view('download.viewfile3', compact('downloads'));
}

答案 1 :(得分:0)

需要更多数据。 auth()->user()可能没有返回用户对象,也许它返回一个空值,或者可能在视图viewfile3中发生错误,将数据传递给视图会更好:< / p>

return view('greetings', ['name' => 'Victoria']);