【问题标题】:Undefined variable: users (View: /home/laravel/web/laravel.swt101.eu/public_html/abonamenty/resources/views/products/edit.blade.php) [closed]未定义变量:用户(查看:/home/laravel/web/laravel.swt101.eu/public_html/abonamenty/resources/views/products/edit.blade.php)[关闭]
【发布时间】: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
  • 这是错字导致的,应该关闭

标签: php sql laravel orm frameworks


【解决方案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'));
}

【讨论】:

    猜你喜欢
    • 2020-11-15
    • 2021-10-17
    • 2019-04-30
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 2021-11-12
    • 2018-07-10
    • 1970-01-01
    相关资源
    最近更新 更多