php - Laravel PHP表单提交,显示结果时破坏文本?
问题描述
所以我有一个待办事项列表和非常奇怪的问题。
所以我有一个表单,用户编写标题和任务描述,任务描述作为文本区域完成,之后用户按下提交按钮并提交任务,然后将用户重定向到“主页”并显示所有待处理的任务。
问题是当用户在 texarea 内按下“ENTER”时,文本“中断”并且与 HTML div 标签不对齐。(如下图所示(TASK 3 和 TASK 2))
这是我的“显示所有任务”代码
> @foreach ($tasks as $task)
> <div class="Task">
> <h1>{{ $task->TaskName }}</h1>
> <div class="TaskDescription">
> <p>{{ $task->TaskDescription }}</p>
> </div>
> </div>
> @endforeach
,这是我的“创建新任务”表格
<div class="FormContainer">
<form method="POST" action="/tasks" class="form_group_vertical">
@csrf
<input name="TaskName" placeholder="Task name..." class="lineInput">
<textarea name="TaskDescription" placeholder="Task description..." class="Form_TextArea"></textarea>
<button class="btn_submit" type="submit">Create new Task</button>
</form>
这就是我存储所有任务的方式
public function storeTasks(){
// return request()->all(); data displayed in JSON
Task::create([
'TaskName' => request('TaskName'),
'TaskDescription' => request('TaskDescription')
]);
return redirect('/tasks');
}
这是我的向上迁移功能
public function up()
{
Schema::create('tasks', function (Blueprint $table) {
$table->id();
$table->string('TaskName');
$table->text('TaskDescription');
$table->timestamps();
});
}
到目前为止,我已经尝试过更改数据的保存方式,尝试将 {{ }} 替换为 {!! !!},尝试更改数据库,并尝试完全重写表单 - 我找不到这种方法的任何修复。
解决方案
使用nl2br
@foreach ($tasks as $task)
<div class="Task">
<h1>{{ $task->TaskName }}</h1>
<div class="TaskDescription">
<!-- Change here -->
<p>{!! nl2br(trim($task->TaskDescription)) !!}</p>
<!-- OR -->
<p>{!! str_replace(array("\r\n", "\r", "\n"), "<br />", $task->TaskDescription) !!}</p>
</div>
</div>
@endforeach
推荐阅读
- c++ - Boost.Test 的数据测试用例真的需要 C++11 吗?
- javascript - 我有这个表格,但我无法通过验证
- d3.js - D3 - 如何将“x”坐标“rect”值的开始设置为“x”轴上的匹配时间/日期
- c# - 如何将 Google Can Stoage 作为文件提供程序链接到 ASP.NET Core 2.2 项目?
- java - Java中如何避免数组越界异常
- ruby-on-rails - 如何在 Rails 中为部分参数提供默认值?
- php - 将控制器中阵列上的循环连接到刀片中的按钮
- python-3.x - Anaconda 中的 Jupyter Notebook 未加载
- java - 如何调用 Spring Framework 存储库方法
- spring-cloud - 更新已注册 eureka 客户端的元数据后,休息端点 /eureka/apps/delta 未正确返回 delta