在使用Laravel 5.3将其发送到视图之前,我需要对从数据库返回的数据运行各种字符串函数.像str_replace()这样的基本内容.
现在也许有一个很好的方法在我的模型上设置Accessors并以某种方式在着陆页上使用该模型,但我想我会走另一条路线,只是在模型之外手动执行这一个查询.
所以我有一个视图提供程序,可以成功地将我的数据导入视图.它看起来像这样:
class ViewLandingProvider extends ServiceProvider {
public function boot() {
// process when featured homepage element is present...
View::composer('mybladetemplate', function ($view){
$featuredProperties = DB::table('properties')
->where([
['featured_property', '=', '1'],
['supplier_id', '=', 123],
])
->orderBy('prop_id', 'desc')
->limit(6)
->get();
// run str_replace!
$featuredProperties->each(function($property){
$property->prop_url=str_replace("http://domain.com/","http://www.domain.com/",$property->prop_url);
});
View::share('featuredProperties', $featuredProperties);
});
}
}
Run Code Online (Sandbox Code Playgroud)
然后在视图中循环,这一切都很好
@if(isset($featuredProperties))
@foreach ($featuredProperties as $property)
<li>
<a title="{{ $property->prop_name }}" href="{{ $property->prop_url }}"></a>
</li>
@endforeach
@endif
Run Code Online (Sandbox Code Playgroud)
正如您在上面的示例中所看到的,我使用 - > each()在数据集合上运行str_replace(),这样我就可以让我进行一个简单的字符串替换.
虽然是Laravel,但我确信有一些魔法可以被拉到这里以更聪明地做到这一点.
那么在实际的数据库请求代码中是否有一种方法可以指定要返回的某个列应该自动运行一个函数呢?
只是为了澄清,我想在提供者php而不是视图文件中进行这些更改,我想在带有Accessors的模型之外执行此操作.
我需要在 HTML 中复制您在此图中看到的内容:
问题是文本覆盖了 div 和背景图像。如果外部 div 中没有图像并且没有纯色,我可以想象我可以相当轻松地使用一些带有圆角的小 html 元素放置在正确的位置来完成此操作,但是背景图像是是什么增加了复杂性。
到目前为止,我有这个......正如你所看到的,我被困在两个圆角上。谁能提出解决方案?请注意,它必须适用于所有现代浏览器:
#outer {
width:100%;
height:400px;
border-radius:20px;
background-image:url(https://media.istockphoto.com/id/1323032473/es/vector/panal-abstracto-de-vector-azul-moderno-con-fondo-de-monitor-de-coraz%C3%B3n-con-para-la.jpg?s=2048x2048&w=is&k=20&c=mXe4wSHc8kAcOXastbN9jhinrWGQX3vvJQUhDgvOcqA=);
position:relative;
}
#innertext {
display:inline;
border-top-right-radius:20px;
background-color:#fff;
padding:5px 25px 0px 5px;
font-size:40px;
color:#000;
position:absolute;
bottom:0px;
}Run Code Online (Sandbox Code Playgroud)
<div id="outer">
<div id="innertext">A test title<br>that is on two lines</div>
</div>Run Code Online (Sandbox Code Playgroud)
我基本上想拥有一个自定义CMS页面,其中包含用于在其中定义的图像的图像和标签对.我打算使用这些项目对在我的新WordPress主题的自定义页面上填充内容.
我已经设法在CMS中创建一个新的设置页面,并在其中填充任意数量的文本框,这要归功于WordPress 2.8中的处理插件选项register_setting().
我现在需要为每个文本框添加字段,让用户打开媒体浏览器,然后选择上传到WordPress的现有图像或上传新图像以供选择.
我无法在网上找到任何简单干净的例子.甚至我在Stack Overflow上发现的与此相关的问题似乎也没有一个明确优雅的例子.
仅供记录; 我最初计划使用我已安装的插件(开发人员自定义字段)进行此操作,认为使用此插件添加自定义图像字段非常容易,因为添加文本框非常简单.但是我似乎错了,没有明确的例子来指定这种字段.
如果您知道任何说明添加自定义图像字段的示例(与同时添加其他字段无关),可以使用本机WordPress API代码或与Developers Custom Fields插件集成.
我需要一个preg_replace语法在我拥有的字符串中的图像标记的/>之后添加一些东西(任何东西).
所以举个例子
$string="here is a <img src="images/test.gif" /> string!"
Run Code Online (Sandbox Code Playgroud)
需要成为......
$string="here is a <img src="images/test.gif" /><br> string!"
Run Code Online (Sandbox Code Playgroud) 我正在将数据添加到将通过 3rd 方 API 发送的 stdClass 对象,因此我为此对象的元素提供的名称实际上是由该外部服务定义的。
$insertArray = array();
$insertArray[0] = new stdclass();
$insertArray[0]->Name = $name;
$insertArray[0]->PhoneNumber = $phone;
Run Code Online (Sandbox Code Playgroud)
这一切都非常有效,直到我遇到一个名称无效的属性:
$insertArray[0]-> First.Name = $firstname;
所以这不是有效的 PHP 语法,有没有办法解决这个问题?
我试图从一个Android应用程序即时制作中的edittext文本框中删除所有非标准字母字符.我正在成功创建一个监听器,获取值并通过正则表达式删除坏的chrs.但是,下面的.setText行导致应用程序崩溃.任何人有任何想法如何绕过这个并动态掩盖某些chrs?
filenameTextBox.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
FILENAME=s.toString();
FILENAME = FILENAME.replaceAll("[^a-zA-Z]", "");
filenameTextBox.setText(FILENAME);
}
}
Run Code Online (Sandbox Code Playgroud) 虽然意识到使用正则表达式进行某些html操作的陷阱/危险(而不是使用PHP dom操纵器),但我正在尝试实现一些非常简单且没有风险的东西.
基本上我有一些来自数据库的未清理的html副本,它不使用段落而是使用换行标记来产生段落的效果.有时虽然用户只输入了一个中断的内容,但文本行返回但没有出现空白行.在这种情况下,仅在这种情况下,我想<br>用两个(<br><br>)替换该单个.
以此为例......
This is <br>a test<br><br>example!
Run Code Online (Sandbox Code Playgroud)
会成为
This is <br><br>a test<br><br>example!
Run Code Online (Sandbox Code Playgroud)
请注意第二组中断是如何保留的,因为它已经有2个标记.
我想在 Data Studio 报告中非常清楚地阐明报告当前运行的日期范围。
所以我想在屏幕顶部添加一个文本框来显示它。
这可能吗?
据我了解,文本标签无法动态显示任何内容。是否可以使用“记分卡”数据图表类型或类似的函数来执行此操作?