未定义变量:用户(查看:/home/laravel/web/laravel.swt101.eu/public_html/abonamenty/resources/views/products/edit

Posted

技术标签:

【中文标题】未定义变量:用户(查看:/home/laravel/web/laravel.swt101.eu/public_html/abonamenty/resources/views/products/edit.blade.php)[关闭]【英文标题】:Undefined variable: users (View: /home/laravel/web/laravel.swt101.eu/public_html/abonamenty/resources/views/products/edit.blade.php) [closed] 【发布时间】:2020-11-16 11:57:51 【问题描述】:

首先我在模型和外键中建立了 laravel 关系。我的外键是 user_id。

这是我的观点的一部分,它会产生错误:

            <select class="form-controll" name="user_id">

                    @foreach($users as $user)

                    <option value="$user->id">$user->name</option>

                    @endforeach

            </select>

这是该视图的控制器方法

    <?php
        
    namespace App\Http\Controllers;
    use Kyslik\ColumnSortable\Sortable;    
    use App\Product;
    use Illuminate\Http\Request;
    use App\User;
        ...
            
        public function edit(Product $product)
           
            $user = User::all('name','id');
            return view('products.edit',compact('product', 'user'));
        

...

【问题讨论】:

你没有发送 $users 来查看,所以你得到了错误 你需要编辑你的控制器并将$user变量重命名为$users 这是错字导致的,应该关闭 【参考方案1】:

您将 user 从控制器而不是用户传递给视图。简单地将 user 替换为 users

public function edit(Product $product)
       
        $users = User::all();
        return view('products.edit',compact('product', 'users'));
    

【讨论】:

此答案与此处发布的答案有何不同? 在查询中改变了一点 但 OP 没有询问他们的查询 :)【参考方案2】:

您在压缩函数中使用的是“用户”而不是“用户”。您的变量也定义为$user 而不是$users。应该是这样的:

public function edit(Product $product)
   
    $users = User::all('name','id');
    return view('products.edit',compact('product', 'users'));

【讨论】:

以上是关于未定义变量:用户(查看:/home/laravel/web/laravel.swt101.eu/public_html/abonamenty/resources/views/products/edit的主要内容,如果未能解决你的问题,请参考以下文章

未定义的变量:Laravel中的错误

未定义变量:文件(查看:\resources\views\home.blade.php)

Codeigniter:将数据传递给查看未定义的变量

在 Laravel 5.1 中传递数据控制器以查看获取未定义的变量

尝试在 Laravel 7 中查看不同内容时,刀片视图上的 ErrorException 未定义变量

未定义变量:编辑器(查看:/home/marco/prova/resources/views/home.blade.php)