【问题标题】:Undefined variable in laravellaravel 中未定义的变量
【发布时间】:2017-07-21 20:25:00
【问题描述】:

我有以下关于 laravel 的问题。我在 phpmyadmin 中创建了一个名为 2017_07_21_190208_create_spielplans_table.php 的迁移,该表称为 spielplans。在 cmd 中迁移后,我在 app 文件夹中得到了一个模型 Spielplan.php。然后我通过 cmd 创建了一个控制器(SpielplanController.php),它位于文件夹 app/http/controllers 中,看起来像这样......

 <?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Spielplan;

class SpielplanController extends Controller
{
    public function getSpielplan(){
        $spielplans = Spielplan::all();
        return view('datenAbfrage')->with('messages', $spielplans);
    }
}

之后我在 routes/web.php 中创建了一个如下所示的路由

Route::get('/datenAbfrage', 'SpielplanController@getSpielplan');

然后是我在视图文件夹中的视图 datenAbfrage.blade.php ...

    @if(count($spielplans) >0)
    @foreach($spielplans as $spielplan)
    <ul class="list-group">
        <li class="list-group items">Name: {{$spielplan->spieltag}}</li>
    </ul>
    @endforeach
@endif

-> spieltag 是 spielplans 数据库中的一个字段!

现在我得到一个错误 未定义变量:第 3 行中的 spielplans(查看:/Applications/XAMPP/xamppfiles/htdocs/Dateneingabe/resources/views/datenAbfrage.blade.php)

谁能告诉我我的问题是什么。对我来说,尚不清楚 larval/eloquent 如何连接数据库表...

我是laravel的新手,但我希望任何人都可以解决我的问题

【问题讨论】:

  • -&gt;with('messages', $spielplans); 会将您的视图中的$messages 设置为$spielplans 的内容。你想要的是-&gt;with('spielplans', $spielplans)see here for more info

标签: php database laravel variables eloquent


【解决方案1】:

在你的控制器中,你可以写:

return view('datenAbfrage')->with('spielplans', $spielplans);

或者,

返回视图('datenAbfrage')->withSpielplans($spielplans);

或者,

返回视图('datenAbfrage',['spielplans'=>$spielplans]);

【讨论】:

    【解决方案2】:

    就像您视图中的变量将是 $message 而不是 $spielplans。

    你要么改变你的观点:

       @if(count($messages) >0)
          @foreach($messages as $message)
              <ul class="list-group">
                  <li class="list-group items">Name: {{$message->spieltag}}</li>
             </ul>
         @endforeach
       @endif
    

    或者您的控制器:

    <?php
    namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    use App\Spielplan;
    
    class SpielplanController extends Controller
    {
        public function getSpielplan(){
            $spielplans = Spielplan::all();
            return view('datenAbfrage')->with('spielplans', $spielplans);
        }
    }
    

    【讨论】:

      【解决方案3】:

      我认为你需要试试这个:

      class SpielplanController extends Controller
      {
          public function getSpielplan(){
              $spielplans = Spielplan::all();
              return view('datenAbfrage',compact('spielplans'));
          }
      }
      

      希望这对你有用!!!

      【讨论】:

        猜你喜欢
        • 2019-04-29
        • 1970-01-01
        • 2015-05-15
        • 2018-12-12
        • 1970-01-01
        • 2019-03-01
        • 2023-03-05
        • 2018-01-26
        • 2020-09-24
        相关资源
        最近更新 更多