【问题标题】:Get data from Controller in Laravel 7从 Laravel 7 中的控制器获取数据
【发布时间】:2020-08-27 00:31:10
【问题描述】:

我想将我的数据从控制器发送到 xedit.blade.php,但我得到了同样的错误:

 Undefined variable: users

在控制器中:

public function index3()
    {
        $users=User::all();

    return view('xedit')->with('users' => $users);

    }

路线:

Route::get('admin/edit', function () {
    return view('xedit');
})->name('edit');

 Route::get('edit','Admin\UsersController@index3');

我想在刀片中使用 $users。也许有路由问题?

【问题讨论】:

  • 试试这个:return view('xedit')->with(['users' => $users]);
  • @OlegNurutdinov 我得到同样的错误
  • 您似乎在访问admin/edit url 时遇到错误,但不仅仅是edit,因为用户变量未定义并从admin/edit url 传递。

标签: php laravel web


【解决方案1】:

使用此代码。

Route::get('/admin/edit','AdminController@index3')->name('edit');

它调用 AdminController 的 index3() 并且函数返回视图。

public function index3()
{
    $users=User::all();
    return view('xedit')->with('users' => $users);
}

下面的代码不会调用 AdminController 中的 index3() 而是返回 直接使用空数据的视图。

Route::get('admin/edit', function () {
    return view('xedit');
})->name('edit');

【讨论】:

  • 对于解释的情况,我们不应该使用最后的代码。
  • 另外,如果我们不需要调用Controller函数,那么我们可以使用最后的代码直接调用视图。
  • 当然。如果有任何进一步的疑问,请尝试并发表评论。 @ThiTle
  • @ThiTle 有帮助吗?如果是,请采纳答案。
【解决方案2】:

你必须改变

Route::get('edit','Admin\UsersController@index3')->name('edit');

【讨论】:

  • 我通过把 $users=User::all();直接在路由文件中。你怎么看,对吗?没有安全问题?
  • 我从不通过route 使用任何提取数据。我总是在我的控制器中做@ThiTle
【解决方案3】:

问题是您对两条路线 admin/edit 和 /edit 使用相同的视图 xedit 。 因此,当您访问 xedit 视图文件中的 admin/edit $users 变量时,没有得到任何值,这意味着它是未定义的。尝试在使用之前检查$users 变量是否已定义。

【讨论】:

    【解决方案4】:

    也许这条路

    Route::get('admin/edit', function () {
    return view('xedit');
    })->name('edit');
    

    这条路线不包含 $users,也许这就是它未定义的原因。

    【讨论】:

      猜你喜欢
      • 2020-08-28
      • 2020-09-01
      • 2021-10-10
      • 2021-05-15
      • 2019-03-21
      • 2014-07-17
      • 1970-01-01
      • 2019-09-13
      • 2021-06-20
      相关资源
      最近更新 更多