【问题标题】:ErrorException Undefined variable when trying to show data in view尝试在视图中显示数据时出现 ErrorException 未定义的变量
【发布时间】:2019-11-10 23:50:58
【问题描述】:

所以我试图用 laravel 显示来自数据库的记录,我已经在 @foreach 语句中定义了变量,但是当我运行它时它显示 ErrorException Undefined variable ,尽管所有变量都已经在 foreach 语句中,我是在我的控制器中缺少方法函数?

这是视图 欢迎.blade.php

<div class="blog-item">       
                        <div class="blog-text text-box text-white">
                            @foreach ($guestbooks as $guestbook)    
                            <div class="top-meta">{{ Carbon\Carbon::parse($guestbook->created_at)->format('d-m-Y')  }} /  di <a href="">Rakitan</a></div>
                            <h3>{{ $guestbooks->name }}</h3>
                            <p>{!! \Illuminate\Support\Str::words($guestbook->message, 50, '...') !!}</p>
                            <a href="{{ route('post.read', ['post_id' => $post->id]) }}" class="read-more">Lanjutkan Baca  <img src="asset/img/icons/double-arrow.png" alt="#"/></a>
                        </div>
                    </div>
                    <!-- Blog item -->
                    <div class="blog-item">       
                        <div class="blog-text text-box text-white">   
                            <div class="top-meta">{{ Carbon\Carbon::parse($guestbook->created_at)->format('d-m-Y')  }} /  di <a href="">Rakitan</a></div>
                            <h3>{{ $guestbook->name }}</h3>
                            <p>{!! \Illuminate\Support\Str::words($guestbook->message, 50, '...') !!}</p>
                            <a href="{{ route('post.read', ['post_id' => $post->id]) }}" class="read-more">Lanjutkan Baca  <img src="asset/img/icons/double-arrow.png" alt="#"/></a>
                        </div>
                    </div>
                    <!-- Blog item -->
                    <div class="blog-item">       
                        <div class="blog-text text-box text-white">   
                            <div class="top-meta">{{ Carbon\Carbon::parse($guestbook->created_at)->format('d-m-Y')  }} /  di <a href="">Rakitan</a></div>
                            <h3>{{ $guestbook->name }}</h3>
                            <p>{!! \Illuminate\Support\Str::words($guestbook->message, 50, '...') !!}</p>
                            <a href="{{ route('post.read', ['post_id' => $post->id]) }}" class="read-more">Lanjutkan Baca  <img src="asset/img/icons/double-arrow.png" alt="#"/></a>
                            @endforeach
                        </div>
                    </div>

这是控制器 留言簿控制器.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Guestbook;

class GuestbookController extends Controller
{
    public function index()
    {
        $guestbooks = Guestbook::get();
        return view('post.post_textarea',[
            'guestbooks' => $guestbooks
        ]);
    }

    public function store(Request $request)
    {
        Guestbook::create([
            'name' => $request->name,
            'message' => $request->message
        ]);
        return redirect()->back();
    }
}

这是路线

Route::get('/posting','GuestbookController@index')->name('guestbook');
Route::post('/posting','GuestbookController@store')->name('guestbook.store');

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您的GuestbookController 函数index() 正在返回一个名为post.post_textarea 的视图并将您的$guestbook 变量传递给该视图,而您正试图在您的welcome.blade.php 中获取该变量。

    更改您的索引函数以返回欢迎视图,如下所示:

    public function index()
        {
            $guestbooks = Guestbook::get();
            return view('welcome',[
                'guestbooks' => $guestbooks
            ]);
        }
    

    【讨论】:

    • 我试过了,但仍然得到同样的错误,未定义的变量是$guestbooks
    • 我还注意到您在 foreach 之后的视图中使用了 $guestbooks-&gt;name。尝试将其更改为$guestbook-&gt;name。正如我所看到的,这可能是一个错字,因为您的其他变量都很好。
    【解决方案2】:

    我认为问题在于有两条路由路由到与Route::get('/posting','GuestbookController@index')-&gt;name('guestbook'); 相同的 url,所以我删除了另一条,感谢@Denis Ćerić 的错字,它可以工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-14
      • 2022-12-01
      • 1970-01-01
      • 2019-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多