为了账号安全,请及时绑定邮箱和手机立即绑定

未定义变量:posts

未定义变量:posts

PHP
墨色风雨 2021-06-30 18:02:12
我是 laravel 的新手,我只是创建一个简单的应用程序,用户可以在其中登录和注册,然后在登录后在仪表板中写帖子,我试图在仪表板中显示用户帖子数据,该数据保存在数据库中,但是我收到此错误:未定义变量:posts(视图:C:\xampp\htdocs\practiseapp\resources\views\dashboard.blade.php)我想我已经定义了帖子,我不知道出了什么问题,任何帮助将不胜感激谢谢....我的仪表板:@extends('layout.master')@section('content')<div class="col-sm-6 col-sm-offset-3">    <header><h3>What do you wanna say</h3></header>    <form method="post" action="{{route('post.create')}}">        {{csrf_field()}}        <div class="panel-body">        <div class="form-group">            <textarea class="form-control" name="body" id="body" rows="5" placeholder="Enter your post">            </textarea>        </div>        <button type="submit" class="btn btn-primary">Create post</button>    </form>    </div></div><section class="row-posts">    <div class="col-md-6 col-sm-offset-3">        <header><h3>Other people posts</h3></header>        @foreach($posts as $post)        <article class="post">            <p>{{ $post->body }}</p>            <div class="info">                posted by {{ $post->user->name}} on {{$post->created_at}}            </div>            <div class="interaction">                <a href="#">Like</a>|                <a href="#">Disike</a>|                <a href="#">Edit</a>|                <a href="#">Delete</a>              </div>        </article>        @endforeach    </div></section>@endsection
查看完整描述

2 回答

?
达令说

TA贡献1821条经验 获得超6个赞

我认为你很接近,但我有一些想法可能对你有帮助。


首先,您是否检查过您的路线设置是否正确routes/web.php?如果您使用了 Laravel 文档中的一些示例,则您的路由可能会在不使用您编写的控制器的情况下返回视图。如果你有这样的事情:


Route::get('/', function () {

    return view('dashboard');

});

...那么你可能想用这样的东西替换它:


Route::get( '/', 'PostController@show );

管理路由的方法有很多种——Laravel Docs会很好地解释其中的一些。


此外,当将东西从控制器传递到视图时,我喜欢将我的对象分配给关联数组,然后在使用视图方法时传递该数组。这完全是个人喜好,但您可能会发现它很有用。有点像这样:


public function show()

{

    // Create output array - store things in here...

    $output = [];


    $output[ "posts" ] = Post::all();


    // Render the Dashboard view with data...

    return view( 'dashboard', $output );

}

希望有些帮助!


查看完整回答
反对 回复 2021-07-02
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

试试下面的代码,


<?php


    namespace App\Http\Controllers;


    use App\Http\Requests;

    use App\Post;

    use App\UserTypes;


    use Auth;

    use Hashids;

    use Redirect;

    use Illuminate\Http\Request;

    use Hash;


    class PostController extends Controller

    {


        public function show()

        {

            //Fetching all the posts from the database

            $posts = Post::get();

            return view('dashboard', compact('posts'));

        }


        public function store(Request $request)

        {

            $this->validate($request,[

                'body' => 'required'


            ]);


            $post = new Post;

            $post->body = $request->body;

            $request->user()->posts()->save($post);


            return redirect()->route('dashboard');      

        }

    }


查看完整回答
反对 回复 2021-07-02
  • 2 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信