一些背景知识:我试图在博客风格的Web应用程序中创建用户可编辑的页面。该应用程序包含多页内容,包含在一个页面中;从后端动态生成并在另一个之下布置 注意:我是Laravel新手。
页面内容保存在DB中;一个DB记录=页面标题+内容。我检索所有记录并将它们发送到模板:
class ContentController extends Controller {
var $current_content;
public function __construct() {
$this->current_content = Content::all();
}
public function serveContent() {
return View::make('home')->with('pages', $this->current_content);
}
}
在模板中,我使用新检索的数据遍历对象并显示每个页面的内容:
@foreach($pages as $page)
<section class="page">
<div class="editable-page" id="{{ $page->page }}">
{{ $page->content }}
</div>
<div hidden class="editable-page-edit-mode" id="{{ $page->page }}">
<textarea class="page-edit">
{{ $page->content }}
</textarea>
</div>
<input hidden type="button" class="edit-btn" value="Edit {{ $page->page }} section"/>
</section>
@endforeach
(textarea用于编辑模式,它包含与上面相同的内容;除了这次它将被发送回数据库)。
问题在于,当用{{ $page->content }}
输出变量内容时,似乎引入了荒谬的空白量。
以下是该部分在浏览器中的显示方式:http://prntscr.com/bzeu4l
以下是幕后发生的事情:http://prntscr.com/bzets2
正常情况下,由于内容显示正确,因此对我来说完全无关紧要。但是,当我取消隐藏文本区域时,很明显它会收到完全相同的数据,并带有空格:http://prntscr.com/bzeum8
这是一个很大的问题,因为我不希望DB值被空格覆盖。
我可以解决这个问题,使用正则表达式并在保存数据时剥离超过2个空格的内容。但这感觉就像是一种解决方法,而不是解决方案。
有谁知道这个优雅的解决方案?由于我是Laravel的新手,因此我很可能错过了在Blade中显示变量值的明显信息。
提前致谢。
答案 0 :(得分:1)
在刀片中保留内容之间的所有空格。因此,要删除空格,请更改以下代码
<div hidden class="editable-page-edit-mode" id="{{ $page->page }}">
<textarea class="page-edit">
{{ $page->content }}
</textarea>
</div>
对此:
<textarea class="page-edit">{{ $page->content }}</textarea>
答案 1 :(得分:1)
更改
<textarea class="page-edit">
{{ $page->content }}
</textarea>
要
<textarea class="page-edit">{{ $page->content }}</textarea>