Summernote(数据未保存在数据库中)(laravel 5.2)
Posted
技术标签:
【中文标题】Summernote(数据未保存在数据库中)(laravel 5.2)【英文标题】:summernote (data not saving in DB) (laravel 5.2) 【发布时间】:2017-01-03 22:47:58 【问题描述】:我正在使用 laravel 5.2 并在站点中集成 Summernote js。
我希望当用户填写表格并点击保存时,所有数据都存储在数据库中。
它适用于单个字段,但不适用于两个或更多。
我的看法:
<form action="route('account')" id="acc" class="ac" method="post">
<div class="col-lg-3"><label>Estado</label>
@foreach($accounts as $account)
@if($user== $account->user)
!! $account->estado !!
<textarea style="display:none;" name="textfield4" id="textfield4"></textarea></div>
<div class="col-lg-2 es" id="estado"></div>
<a span class="fa fa-heartbeat" id="sex" aria-hidden="true">
</span></a>
</div>
<div class="col-lg-4"></div>
</div>
<div class="row">
<section class="col-lg-3"><div><br><label for="textfield5">I'm Good At:</label>
<p>!! $account->goodat !!</p>
<textarea style="display:none;" name="textfield5" id="textfield5"></textarea></div>
<div class="col-lg-2 es" id="goodat"></div>
@endif
@endforeach
我的 JS 在视图中:
<script>
var edit = function()
$('#estado').summernote(focus: true);
$('#goodat').summernote(focus: true);
;
var save = function()
var makrup = $('#estado').summernote('code');
$('#estado').summernote('destroy');
var makrup = $('#goodat').summernote('code');
$('#goodat').summernote('destroy');
;
$(".acc").submit(function(e)
var self = this;
e.preventDefault();
//$('#estado').summernote('destroy');
var estado = $('#estado').summernote('code');
$("#textfield4").html(estado); //populate text area
var goodat = $('#goodat').summernote('code');
$("#textfield5").html(goodat); //populate text area
self.submit();
return false;
);
</script>
我的控制器:
se App\Account;
use Illuminate\Support\Facades\Auth;
class AccountController extends Controller
public function account(Request $request)
$account = new Account();
$account->estado = $request->input('textfield4');
$account->goodat = $request->input('textfield5');
$request->user()->accounts()->save($account);
return redirect()->route('myplace',['username'=>Auth::user()->username]);
【问题讨论】:
dd($request) 是一个很好的第一步,但是您应该在请求转储中显示属性和请求的内容。您也可以尝试 dd($request->input()) 以获得更清晰的结果 第一个疯狂的猜测是您不应该使用 .html() 而是使用 .val() 设置 textarea 内容 @FrankProvost 在做 dd($request->input()) 我得到这个:array:4 [▼ "textfield4" => "" "textfield5" => "" "textfield9" = > "" "_token" => "HBJGDY760fxF6v5b2eJSOA2G0f2D0saMp3KtTZRg" ] 也 .val() 没有工作。 如您所见,您实际上是在发送空字符串 - 因此您的问题出在前端。如果您使用的是 chrome,请按 f12 打开开发者工具。转到控制台并输入 $('#estado').summernote('code'); - 确保这会返回您想要的输入 【参考方案1】:您是否验证了请求输入存在于函数中?
也许你可以检查一下:
dd($request);
【讨论】:
我已将屏幕截图包含在问题中 这不是一个完整的答案,这应该是一个评论【参考方案2】:正如聊天https://chat.***.com/rooms/122478 中所讨论的那样,实际的问题不见了
$(document).ready(function() ... );
和
$(".acc").submit(function(e) ... );
表单的实际类是 .ac 而不是 .acc - 但是 id 是 acc
还必须更改编辑,因为当包装在就绪函数中时,无法从 onclick 事件中直接调用它。
在讨论中,您可以找到页面的标记 - 将其粘贴到完整的 IDE 中会显示大量错误 - 因此我将提供一些有关代码状态的更多提示。
您有很多很多重复的 ID。不要将 id 设置为不需要由 id 标识的对象 - 没有必要。如果你有一个循环,你不能简单地说 id="example" - 每次循环它都会创建一个具有相同 id 的实体。 jQuery 将无法识别它们。如果您想让它们全部使用类 - 如果您想直接识别它们,请在循环中使用增量器 错误使用标记:<ul>
标签中有 div,不应该这样做。
</br>
使用 <br>
或 <br/>
是错误的
很多未结束的标签 label B'day: label (两次打开)
form action="http://localhost:8000/account" id="acc" class="ac" method="post" 没有关闭 - 没有 </form>
为此 - 不要忘记打电话表单::close()
试着找一个合适的编辑器来帮助你处理这些东西。我正在使用 intellij webstorm,它实际上要花一点钱(对学生免费)。
【讨论】:
以上是关于Summernote(数据未保存在数据库中)(laravel 5.2)的主要内容,如果未能解决你的问题,请参考以下文章
如何将通过summernote生成的大型base64图像保存在我的数据库中?