我正在测试PHP7,并在最近的更新后出现了一个奇怪的问题.默认情况下应该启用SimpleXML,我的phpinfo页面显示它可用:
但是,这些功能不可用:
<?php
if (function_exists('simplexml_load_file')) {
echo "simpleXML functions are available.<br />\n";
} else {
echo "simpleXML functions are not available.<br />\n";
}
// result-- NOT available
Run Code Online (Sandbox Code Playgroud)
并且该模块未列为已加载:
~ $ php -m
[PHP Modules]
calendar
Core
ctype
curl
...
Reflection
session
shmop
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
Zend OPcache
zlib
Run Code Online (Sandbox Code Playgroud)
任何人都知道这是否有解决方法?
版本信息:
~ $ php -v
PHP 7.0.3-8+deb.sury.org~trusty+2 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies …Run Code Online (Sandbox Code Playgroud) 我正在尝试将curl请求调试到webservice'getToken'端点.
我并不是100%确信URL和身份验证信息正确地写入了卷曲句柄.
我正在尝试curl_getinfo($ch, CURLINFO_HEADER_OUT);捕获已发送的请求,但它并没有给我太多信息.有没有办法更深入地诊断实际的卷曲请求是什么样的?
这是代码:
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HEADER, 1); // just getting header to see if we got an auth token
curl_setopt($ch, CURLOPT_FILE, $fh);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLINFO_HEADER_OUT, 1); // capture the header info
curl_setopt($ch, CURLOPT_VERBOSE, 1); // turn verbose on
// execute the curl request
$rh = fopen("request.txt", "w"); // open request file handle
$verbose = fopen('php://temp', 'rw+');
curl_setopt($ch, CURLOPT_STDERR, $verbose);
curl_exec($ch); // execute request
$sent_request = curl_getinfo($ch, …Run Code Online (Sandbox Code Playgroud) 我很好奇为什么Eloquent关系hasMany有一个不同的签名而不是belongsToMany.特别是自定义连接表名称 - 对于给定Comment属于多个Roles 的系统,给定的Role有多个Comments,我想将关系存储在一个被调用的表中my_custom_join_table,并将键设置为comment_key和role_key.
return $this->belongsToMany('App\Role', 'my_custom_join_table', 'comment_key', 'role_key'); // works
Run Code Online (Sandbox Code Playgroud)
但相反,我无法定义该自定义表(至少文档没有提到它):
return $this->hasMany('App\Comment', 'comment_key', 'role_key');
Run Code Online (Sandbox Code Playgroud)
如果我有一个Role对象hasMany Comments,但我使用非标准表名来存储该关系,为什么我可以使用这种非标准表以一种方式而不是另一种方式?
是否可以在vagrantfile中设置多个sync'd文件夹?这是我当前的配置(使用vaprobash):
# Use NFS for the shared folder
config.vm.synced_folder ".", "/vagrant/Sites",
id: "core",
:nfs => true,
:mount_options => ['nolock,vers=3,udp,noatime']
# Use NFS for the shared folder
config.vm.synced_folder "../Code", "/vagrant/Code",
id: "core",
:nfs => true,
:mount_options => ['nolock,vers=3,udp,noatime']
Run Code Online (Sandbox Code Playgroud)
只有第二个映射被加载,另一个被忽略 - 所以我最终得到了一个/vagrant/Code正确映射的目录,但没有vagrant/Sites
我还在我的rails 4演示网站上工作,我看到一件奇怪的事情.在控制器中它有一个这样的行:
format.html { redirect_to @widget, notice: 'Widget was successfully created.' }
Run Code Online (Sandbox Code Playgroud)
这会在重定向页面中呈现一条Flash消息,这是预期的.但是,附加到消息div的css类alert alert-notice不是有效的Bootstrap警报类,比如alert-info.
为此闪存设置的类在哪里,我该如何自定义它?
此外,如果我通过ajax删除记录,是否有办法访问核心闪存容器以通过js显示消息,或者我是否必须显示/隐藏我自己的flash消息div只是为了ajax请求?
编辑:我的Michael Hartl受到启发layouts/application.html.erb:
<div class="container">
<% flash.each do |key, value| %>
<div class="alert alert-<%= key %>"><%= value %></div>
<% end %>
<%= yield %>
</div>
Run Code Online (Sandbox Code Playgroud)
谢谢!
编辑2:
也许在我原来的问题中我不够清楚.我完全理解在这种情况下如何在flash对象中设置类.我有兴趣学习如何notice:在format.html块中使用和自定义.似乎应该有办法通过这个通知传递课程?或者这不是Rails的核心做事方式吗?
我正在处理一个laravel 5.2网站的问题.我有一个master(main)布局,我用它来设置页面的主要元素,它正在欢迎页面(扩展它)中使用,没有任何问题.
但是,在某些子页面中,我不断从编译视图中收到错误:
<?php echo $__env->make('layouts.main, array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
错误是 Parse error: syntax error, unexpected '__data' (T_STRING), expecting ',' or ')'
除了标题和主要内容元素之外,我的视图中几乎没有任何内容,我正在尝试转储变量.错误来自Laravel,而不是我的代码(据我所知).
这是整个观点:
@extends('layouts.main)
@section('title', 'another page!')
@section('content')
{{dd($myvar)}}
@endsection
Run Code Online (Sandbox Code Playgroud)
任何想法为什么会这样?
我想在运行El Capitan的mac上卸载Vagrant.
Vagrant文档说:
在Mac OS X上,删除/ Applications/Vagrant目录和/ usr/bin/vagrant文件.还要执行sudo pkgutil --forget com.vagrant.vagrant让OS X忘记Vagrant曾经安装过.
但是,没有/Applications/Vagrant目录,也没有/usr/bin/vagrant文件:
? ~ ls /usr/bin/va*
zsh: no matches found: /usr/bin/va*
? ~ ls /Applications/Vagrant
ls: /Applications/Vagrant: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我重新安装Vagrant 1.7.4只是为了确保它确实在那里,我可以验证:
? ~ vagrant --version
Vagrant 1.7.4
Run Code Online (Sandbox Code Playgroud)
知道怎么了?这些文档是否过时了?
我正在尝试postgres jsonb列类型,到目前为止一直很好.我正在使用的一个常见查询是这样的:
select count(*) from jsonbtest WHERE attributes @> '{"City":"Mesa"}';
Run Code Online (Sandbox Code Playgroud)
我该怎么扭转呢?是否有不同的运营商或仅仅用作
select count(*) from jsonbtest WHERE NOT attributes @> '{"City":"Mesa"}';
Run Code Online (Sandbox Code Playgroud) 我使用的是磁条支付服务,与stripe和stripe_event宝石.到目前为止一切都很好 - 他们工作得很好
我想使用stripe_eventwebhooks监听器来执行一系列操作.例如,当Stripe发送webhook通知应用新订阅时,我想将该订阅添加到subscriptions表中,向新用户发送电子邮件,建议管理员等.
在github上的(非常缺乏的)stripe_event 文档中,他们说要使用该call方法订阅一个对象,并将示例显示为
class CustomerCreated
def call(event)
# Event handling
end
end
Run Code Online (Sandbox Code Playgroud)
但是,它们不显示此代码所在的位置(将放置哪个文件)或如何调用它config/initializers/stripe.rb.
有人能提供一个如何使用这些的明确例子吗?
我有一个Feed没有任何"本地"数据的view()的模型,视图和控制器.也就是说,数据通过Web服务调用抓取到客户端站点并在本地视图中呈现.
本地站点需要验证从远程站点获取的对象是否有效(通过验证User拥有该对象的对象是否有效Feed)然后显示它.
我有逻辑从Feed模型中的远程源获取数据.然后Feed控制器获取feed id的URL参数,将其传递给模型getFeed函数,并显示它.
但是,由于没有表,Feed.getFeed(params[:feed_id])控制器中的调用返回错误说there is no table Feed.
我应该删除Feed模型,只是让getFeed函数成为辅助函数吗?什么是正确的Rails方式来处理没有表的模型?
php ×4
ruby ×2
vagrant ×2
activerecord ×1
blade ×1
curl ×1
eloquent ×1
jsonb ×1
laravel ×1
laravel-5.2 ×1
macos ×1
php-7 ×1
postgresql ×1
simplexml ×1
web-services ×1
webhooks ×1