因此,在我为几个Symfony项目使用FOSUserBundle之后,突然发生了上述错误.
我已经尝试过包含模板服务(现在两次),看起来安装得很好.这是我的composer.json中的需求列表:
"require": {
"php": ">=5.5.9",
"doctrine/doctrine-bundle": "^1.6",
"doctrine/orm": "^2.5",
"friendsofsymfony/user-bundle": "^2.0",
"incenteev/composer-parameter-handler": "^2.0",
"sensio/distribution-bundle": "^5.0.19",
"sensio/framework-extra-bundle": "^5.0.0",
"symfony/monolog-bundle": "^3.1.0",
"symfony/polyfill-apcu": "^1.0",
"symfony/swiftmailer-bundle": "^2.6.4",
"symfony/symfony": "3.4.*",
"symfony/templating": "^3.4",
"twig/twig": "^1.0||^2.0"
},
Run Code Online (Sandbox Code Playgroud)
我按照惯例设置了config.yml,security.yml和routing.yml文件,并在AppKernel.php文件中包含了bundle.我还创建了User.php实体,但每次我尝试清除缓存或更新数据库时,都会收到此错误.
服务"fos_user.mailer"依赖于不存在的服务"模板化"
经过多次搜索,我看不出在哪里解决这个问题.对此的任何帮助都非常感谢,因为它以前从未发生过,我总是使用FOSUserBundle来满足我的安全需求.
我已经使用 WooCommerce 一段时间了,但是这个问题给我带来了问题。我正在为其创建站点的客户提供培训课程和演示,而这个特定的产品(或演示)允许将几个不同的选项添加到购物车中,每个选项都有自己的价格。
因此,基本价格为零。然后有 8 种不同的演示文稿,用户可以通过其现有网站上的复选框进行选择 - 我以某种方式需要在他们的新网站上使用 WooCommerce 复制它,但我只能使用下拉菜单进行变体,据我所知它只允许一种选择。我能看到这个工作的唯一可行的方法是,如果我添加 8 个不同的下拉列表,每个下拉列表中包含所有 8 个演示文稿,然后客户选择他们想要的许多不同的演示文稿。不过这有点麻烦,并且可能会导致用户错误(例如,两次选择相同的演示文稿)。
我附上了一张我希望在 WooCommerce 中看起来像的屏幕截图,有什么办法可以实现吗?如果这是唯一的方法,我不介意使用插件。
我正在我的项目中实现完整日历的时间线视图,虽然它工作并且看起来很棒,但我唯一的问题是在时间线月视图中,事件栏没有换行,所以一半的文本被切断,特别是当该活动仅持续几天。
在“周”和“日”视图中,文本环绕得很好——它只是在“月”视图中。有什么办法可以让它包装文本吗?在某些情况下,预订中会添加注释,因此在月视图中几乎无法阅读。
我正在使用此代码添加描述:
eventRender: function(event, element) {
element.find(".fc-event-title").remove();
element.find(".fc-event-time").remove();
if(event.desc) {
var new_description =
'<br/><div class="fc-title">' + event.desc + '</div>'
;
element.append(new_description);
}
}
Run Code Online (Sandbox Code Playgroud)
在我的日历参数中。
这是该条目在时间线“月”视图中的样子的图片:
这是日视图中的样子(我希望它看起来像):
如果有人可以帮助解决这个问题,我将不胜感激。
我正在使用 FullCalendar 调度程序并希望将我的日历设置为日程日视图,并可以选择周或月。但是,我担心的是,默认视图中不显示实际的星期几,仅显示如下日期:
2018 年 1 月 15 日
我真的很想拥有这样的东西:
1 月 15 日,星期一
我什至不需要年份。
天确实出现在周和月视图中没问题,但我找不到允许在日视图中显示日期的设置,这将非常有用,例如当用户想要跳到“下周五”而不必查阅另一个视图以找出实际日期。
有任何想法吗?
我需要在Symfony2网站表单中下拉日期,并且在表单构建器中使用“日期”字段类型。这里是我的报关表:
$builder->add('date', 'date', array(
'label' => 'Date',
'format' => 'dd MM yyyy',
'required' => true
));
Run Code Online (Sandbox Code Playgroud)
默认情况下,它将显示过去的5年和将来的5年(即2010年-2020年),但是我需要从今年开始显示,并且只显示未来几年,因为这种特殊形式没有需要过去的日期或将来的日期。
我在《 Doctrine》文档中读到,您可以列出一个年份范围,但是如何使它自动使用此年份,然后再使用几年呢?
谢谢 :)
不确定这里的标题是否有点含糊不清,但基本上我要做的是从数据库中获取数据,但我需要引用一个没有自己的实体的连接表,因为它只在另一个实体中引用.
这是我的设置.我有一个Symfony2项目,我有一个数据库中的阶段列表,每个阶段可以是一个或多个类别.我需要从特定类别中获取所有阶段,并按相关排序顺序对其进行排序.如果我直接在mySQL中这样做,我会写:
SELECT s.stage FROM stage s LEFT JOIN stage_category sc ON sc.stage_id = s.id WHERE sc.category_id = 1 ORDER BY s.sort_order
Run Code Online (Sandbox Code Playgroud)
但问题是,"stage_category"连接表没有实体,所以如果我在我的Doctrine查询中引用它,它告诉我它不存在.我写的是:
$qb = $this->createQueryBuilder('s')
->select('s')
->join('stage_category','sc')
->where('sc.category_id = :cat')
->setParameter('cat', $cat);
Run Code Online (Sandbox Code Playgroud)
虽然,不完全确定这是否正确 - 它位于我的存储库类中,名为findStagesInCategory().
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Category", inversedBy="stage", cascade={"remove", "persist"})
* @ORM\JoinTable(name="stage_category")
* @ORM\JoinColumn(onDelete="SET NULL")
*/
private $category;
Run Code Online (Sandbox Code Playgroud)
反之亦然:
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="Stage", mappedBy="category", cascade={"remove", "persist"})
*/
private $stage;
Run Code Online (Sandbox Code Playgroud)
是否有任何合理的方式来获取我需要的数据?
我被要求在CRM中添加确认电子邮件,然后用户将注册,然后发送一封电子邮件,其中包含确认的链接以启用其帐户.但是,无论何时单击链接,它都会立即重定向到登录页面,因为它们尚未确认,因此无用.我试图在security.yml文件中排除它,但到目前为止没有运气.
我试过了:
- { path: ^/register/*, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/confirm/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register/confirm/*, role: IS_AUTHENTICATED_ANONYMOUSLY }
Run Code Online (Sandbox Code Playgroud)
但这些似乎都不起作用.
根据要求,FOS注册的路由文件:
<?xml version="1.0" encoding="UTF-8" ?>
<routes xmlns="http://symfony.com/schema/routing"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
<route id="fos_user_registration_register" path="/" methods="GET POST">
<default key="_controller">FOSUserBundle:Registration:register</default>
</route>
<route id="fos_user_registration_check_email" path="/check-email" methods="GET">
<default key="_controller">FOSUserBundle:Registration:checkEmail</default>
</route>
<route id="fos_user_registration_confirm" path="/confirm/{token}" methods="GET">
<default key="_controller">FOSUserBundle:Registration:confirm</default>
</route>
<route id="fos_user_registration_confirmed" path="/confirmed" methods="GET">
<default key="_controller">FOSUserBundle:Registration:confirmed</default>
</route>
</routes>
Run Code Online (Sandbox Code Playgroud)
FOS用户配置:
fos_user:
db_driver: orm
firewall_name: main
user_class: AppBundle\Entity\User
registration:
confirmation:
enabled: true
template: emails/registration.html.twig …Run Code Online (Sandbox Code Playgroud) 我目前正在使用Formik在React中进行预订。我还分别为预订日期和时间合并了Ant Design的Date Picker和Time Picker,但是我很难将值传递回组件。
这是我在表单组件中进行设置的方式(我省略了其他不相关的字段):
const { booking, handleSubmit, mode } = this.props;
...
<Formik
initialValues={booking}
onSubmit={handleSubmit}
render={({errors, touched, isSubmitting}) => (
<Form>
...
<div className="form-group col-sm-4 col-md-6 col-lg-4">
<label htmlFor="booking_date">
Booking Date <span className="required">*</span>
</label>
<DatePicker onChange={ (date, dateString) => setFieldValue('booking_date', dateString)} defaultValue={this.state.bookingDate}
className="form-control" format={this.state.dateFormat} />
</div>
<div className="form-group col-sm-4 col-md-6 col-lg-4">
<label htmlFor="start_time">
Start Time <span className="required">*</span>
</label>
<TimePicker
defaultValue={this.state.startTime}
format={this.state.timeFormat}
className="form-control"
onChange={this.handleStartTimeChange}
minuteStep={5}
id="start_time"
name="start_time"
/>
</div>
Run Code Online (Sandbox Code Playgroud)
这是处理时间变化(仅设置状态)的函数:
handleStartTimeChange(time) {
this.setState({
startTime: time
});
}
Run Code Online (Sandbox Code Playgroud)
然后在父级上,组件的设置如下:
<BookingForm …Run Code Online (Sandbox Code Playgroud) 我刚刚为我正在开发的 Laravel 项目安装了 Mailcatcher,并使用 Virtual Box 和 Vagrant 在本地运行该应用程序。mailcatcher当我在终端上运行命令时,我得到:
Starting MailCatcher
==> smtp://127.0.0.1:1025
/home/vagrant/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/thin-1.5.1/lib/thin/server.rb:104: warning: constant ::Fixnum is deprecated
==> http://127.0.0.1:1080
*** MailCatcher runs as a daemon by default. Go to the web interface to quit.
Run Code Online (Sandbox Code Playgroud)
但是当我访问http://127.0.0.1:1080时,我得到以下页面:
我的应用程序在 IP 192.168.10.10 上运行,所以我也尝试使用它,但结果相同。我不完全确定这是否与我的本地主机或 Mailcatcher 有关,但在理想的情况下,我想通过这样的 URL 运行它:192.168.10.10/mailcatcher但我不确定如何在我的项目中进行设置。如果我能让本地主机工作,我会很高兴 - 是否需要更改任何其他设置才能使其工作?或者是我的本地主机不玩球?
编辑:
如果需要,我的 Laravel 项目中的 .env 文件具有以下邮件设置:
MAIL_DRIVER=smtp
MAIL_HOST=127.0.0.1
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_PRETEND=false
Run Code Online (Sandbox Code Playgroud) 我已经设置了一个简单的拖放界面来实现克隆功能.我遇到的问题是,当元素被拖动到主画布然后掉落时,它会突然向右移动,而不是准确地拖到我拖动它的位置.
这是javascript:
$(function() {
var x = null;
$("#draggable").draggable({
helper: 'clone',
cursor: 'move',
snap: '.snap-target'
});
$("#canvas").droppable({
drop: function(e, ui) {
if ($(ui.draggable)[0].id != "") {
x = ui.helper.clone();
ui.helper.remove();
x.draggable({
helper: 'original',
containment: '#canvas',
snap: '.snap-target'
});
x.appendTo('#canvas');
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
我创建了一个jsfiddle:
https://jsfiddle.net/kuyn6gmc/
如果您尝试将蓝色框拖动到主画布中然后释放鼠标,您将看到该框如何"弹出"到右侧.当您在画布中移动框时,它可以正常工作.在小提琴上,它没有在浏览器上的全宽时那么糟糕,我认为它相对于视口的总宽度.
如果有人知道为什么会这样,我会很感激:)
谢谢迈克尔
当我检查相关按钮时,我正在尝试更改组中每个单选按钮旁边的图像的背景颜色.我使用了以下HTML和CSS:
.option-choice:checked img.img-thumbnail {
background-color: #004990 !important;
border-color: red;
}Run Code Online (Sandbox Code Playgroud)
<div class="radio">
<label>
<input class="option-choice" name="option[227]" value="18" type="radio">
<img src="imageurl.jpg" alt="20mm " class="img-thumbnail">20mm
</label>
</div>Run Code Online (Sandbox Code Playgroud)
然而CSS不起作用,图像保持不变.这可能是我的CSS不正确,还是不可能这样做?
我对 Laravel 很陌生,但最近从某人那里接手了一个项目,并试图让邮件刀片模板进行渲染,但我遇到了问题。
查询邮件模板使用的代码如下:
@component('mail::message')
#New customer enquiry
We have received a new customer enquiry.
@component('mail::table')
| **Name** | **Email** | **Telephone** |
| ---------------------------------------------- |:---------------------:| -----------------------:|
| {{$enquiry->firstname}} {{$enquiry->lastname}} | <{{$enquiry->email}}> | {{$enquiry->telephone}} |
@endcomponent
Thanks,<br>
{{ config('app.name') }}
@endcomponent
Run Code Online (Sandbox Code Playgroud)
但该表格始终呈现为原始 HTML,以下是邮件在 MailCatcher 中的外观截图:
我已经检查了一些与此类问题有关的其他帖子,但通常是由于尝试在邮件模板中呈现多个表,但这只是一个表。是否有我遗漏的组件,或者只是 MailCatcher 没有正确呈现?
symfony ×4
css ×2
doctrine-orm ×2
fullcalendar ×2
laravel ×2
blade ×1
datepicker ×1
draggable ×1
formik ×1
html ×1
javascript ×1
jquery ×1
jquery-ui ×1
mailcatcher ×1
mysql ×1
php ×1
reactjs ×1
variations ×1
woocommerce ×1
wordpress ×1