如何在laravel中将用户帖子保存在数据库中?

Posted

技术标签:

【中文标题】如何在laravel中将用户帖子保存在数据库中?【英文标题】:How to save users post in the database in laravel? 【发布时间】:2020-06-08 22:16:41 【问题描述】:

我对 Laravel 非常陌生,并且正在从事一个项目。我有一个用户表,类别表(category_id,category_name)和宠物表(id,user_id,category_id,breed,description....)。我怎样才能让用户添加帖子并制作他选择的id和cagtegory_id从选择选项保存在宠物表中的 user_id 和 category_id 中??

【问题讨论】:

你能把你的html和控制器贴出来吗,很简单,但我想先看看你是怎么尝试的 是认证用户还是普通用户(登录用户或者只是一个用户) 我正在寻找很多教程,但无法弄清楚任何东西。这是我的控制器页面类 RehomeController extends Controller public function rehome(Request $show) $breed = $show- >输入(“品种”); $gender = $show->input('gender'); $age = $show->input('年龄'); $颜色= $显示->颜色; $高度 = $显示->高度; $description = $show -> 描述; $健康= $显示->健康;返回视图('posts.blade')->with('breed',$breed); 是登录用户 【参考方案1】:

假设您的表单有 category_id、name 等。

试试下面的代码

$pet = new PET_MODEL_NAME;
$pet->user_id = Auth::user()->id;
$pet->category_id = $request->category_id;
$pet->name = $request->name;
$pet->save();
return back()->withSuccess('Pet added success!');

解释

    $pet 将调用您的 petModel 您要保存数据的位置; $pet->user_id 在您的数据库中是 user_idAuth::user()->id是当前登录的user_id等等 $pet->something(=之前)表示数据库中的列,(=之后)表示来自form的数据提交

【讨论】:

对于类别,我已经通过数据库保存了数据。我的表单包含类别、品种、年龄、身高等字段,我已经从数据库中检索了该类别的数据。跨度> 我说的只是你的宠物桌......你保存的那个类别必须在这个pet桌子上使用 你能发布你的html(你的表单) 代码太长了,分开贴吧。 要添加图像,我是按照相同的过程还是需要编写比上面的代码更多的代码?【参考方案2】:

在您的 HTML 中:

<form action="/pet-url" method="post">
    @csrf
    <input type="text" name="pet_name">
    <select name="category_id" id="">
        <option value="1">Category 1</option>
        <option value="2">Category 2</option>
        <option value="3">Category 3</option>
    </select>
</form>

在您的路线中:

Route::post('/pet-url', 'PetController@store');

在您的控制器中:

public function store(Request $request) 
    $pet = new Pet;
    $pet->user_id = Auth::user()->id;
    $pet->category_id = $request->category_id;
    $pet->name = $request->pet_name;
    $pet->save();
    return back()->withSuccess('Pet added success!');

【讨论】:

我收到一个错误“找不到类'App\Http\Controllers\Pet'” use App\Pet 我假设Pet 是您的模型。如果没有,则更改为您的型号名称

以上是关于如何在laravel中将用户帖子保存在数据库中?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 django 中将图像添加到帖子中

在 laravel 中将一些用户信息保存到不同的表中

在 Laravel 5 中将多行从动态表单保存到数据库

在laravel [实现过滤器]中将多个表与雄辩和急切的加载一起加入

无论控制器如何,如何在 Laravel 中将数据传递给布局?

如何在 LARAVEL 5.2 中将数据存储到数据库中