使用表单编辑数据库中的数据 laravel

Edit data from database using forms laravel

所以我打算做一种表单来编辑用户的数据。我目前正在使用 laravel-8 并且我对它很陌生。如何使用表单编辑数据并请求有人帮忙?我打算将函数放在我的仪表板控制器中,并将表单放在我将要处理的空白页面中。到目前为止,这是控制器:

<?php

namespace App\Http\Controllers;
use App\Models\User;
use Auth;
use Illuminate\Http\Request;

class DashboardController extends Controller
{
    public function dashboard()
    {
        $dashboardTitle = "Dashboard";
        $isCurrent = "dashboard";

        return view('dashboard.index', [
            'dashboardTitle' => $dashboardTitle,
            'isCurrent' => $isCurrent
        ]
    );
    }
    public function profile()
    {
        $dashboardTitle = "Profile";
        $isCurrent = "Profile";
        return view('dashboard.profile', [
            'dashboardTitle' => $dashboardTitle,
            'isCurrent' => $isCurrent
        ]
    );
    }
    public function directory()
    {
        $dashboardTitle = "Directory";
    $isCurrent = "Directory";
    $users = User::all();
    return view('dashboard.directory', [
        'dashboardTitle' => $dashboardTitle,
        'isCurrent' => $isCurrent,
        'users' => $users
    ]);
    }
    public function journal()
    {
        $dashboardTitle = "Journal";
        $isCurrent = "Journal";
        return view('dashboard.journal', [
            'dashboardTitle' => $dashboardTitle,
            'isCurrent' => $isCurrent
        ]
    );
    }
    public function files()
    {
        $dashboardTitle = "Files";
        $isCurrent = "Files";
        return view('dashboard.files', [
            'dashboardTitle' => $dashboardTitle,
            'isCurrent' => $isCurrent
        ]
    );
    }
}

我想把它放在配置文件功能中。任何帮助将不胜感激:D

我记得在学习的时候犯过同样的错误laravel lol :)

不,您需要做的是创建一个用户资源控制器并让 Laravel 使用以下 artisan 命令为您完成工作:

php artisan make:controller UserController -r -m User

或者,如果你想在一个命令上创建控制器、迁移、模型、工厂和播种器,只需执行(小心,因为 laravel 已经有一个用户模型):

php artisan make:model User -a 

Laravel 将在其中创建一个资源控制器,您将拥有可用于更新所有必需数据的预定义函数

您还需要像这样更新您的路由文件以添加您的资源控制器:

Route::resource('user', UserController::class);

Laravel 将自动创建所有路由以使用控制器,例如,如果您转到 localhost/yourapp/public/user Laravel 将调用索引函数,在那里您只需发送所有开始数据可能是这样的:

public function index()
{
    $dashboardTitle = "Dashboard";
    $isCurrent = "dashboard";

    return view('dashboard.index', [
        'dashboardTitle' => $dashboardTitle,
        'isCurrent' => $isCurrent
    ]
);

如果你去localhost/yourapp/public/user/create Laravel会调用用户class的create方法,如果你只是想检索特定用户你只需要发出一个get请求到 localhost/yourapp/public/user/{user_id} 并在显示函数中输入如下内容:

public function show($id)
{
    return view('user', [
        'user' => User::find($id),
    ]);
}

要使用 post 请求更新用户,您只需向 localhost/yourapp/public/user/{user_id} 发出 post 请求,并且在控制器中有这样的内容:

public function update(Request $request, User $user)
{
    $user->fill($request->all());
    $user->save();

    return response()->json([
        'success' => 'ok',
        'msg' => 'User modified',
    ], 200);
}

我可以一整天,但如果您尝试查找并遵循许多 laravel 向您展示代码的 CRUD 教程并逐步解释或阅读文档,那就最好了:

https://laravel.com/docs/8.x/controllers
https://codingdriver.com/laravel-8-crud-app-example-tutorial.html