我已经为laravel中的变量验证了所有的东西但是对于电子邮件我有一个简单的问题.
来自Laravel的文档,
'email' => 'required|email'
Run Code Online (Sandbox Code Playgroud)
我知道这只是一个电子邮件地址但是对于喜欢,
email=abc@xyz.com,xyz@abc.com, def@ghi,com
Run Code Online (Sandbox Code Playgroud)
当我发送电子邮件的数组时,我仍然收到电子邮件不是有效的电子邮件.我做得更像,
'email' => 'required|email|array'
Run Code Online (Sandbox Code Playgroud)
但我仍然有错误.可以任何身体帮助.
谢谢,
主持人:WinXP,来宾:Ubuntu 12.10,连接类型:只有NAT.内核IP路由表(路由-n)仅包含标头
使用ifconfig:
eth2 Link encap:Ethernet HWaddr 08:00:27:c6:86:82
inet6 addr: fe80::a00:27ff:fec6:8682/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:4391 (4.3 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1184 (1.1 KB) TX bytes:1184 (1.1 KB)
Run Code Online (Sandbox Code Playgroud)
ping任何互联网地址都会出错:
连接:网络无法访问 …
这两行之间的主要区别是什么?:
$obj = new ArrayObject();
Run Code Online (Sandbox Code Playgroud)
&
$obj = new \ArrayObject();
Run Code Online (Sandbox Code Playgroud)
当我使用第一行时出现错误:"Fatal error: Class '\Foo\Bar\ArrayObject' not found..."我不太确定为什么会出现此错误?第二条线似乎解决了这个问题.
如果我想使用eloquent获取数据库中第一个用户的名称,我可以这样做:
$user = User::select('name')->first()->pluck('name');
// or $user = User::first()->pluck('name');
echo $user;
Run Code Online (Sandbox Code Playgroud)
仅将此用户的名称作为字符串.
但是,如果我仅使用查询生成器尝试相同的操作:
$user = DB::table('users')->select('name')->first()->pluck('name');
echo $user;
Run Code Online (Sandbox Code Playgroud)
我得到例外:
调用未定义的方法stdClass :: pluck()
但是没有先使用它会起作用:
$user = DB::table('users')->select('name')->where('id',1)->pluck('name');
echo $user;
Run Code Online (Sandbox Code Playgroud)
这难道不是可以使用pluck与first使用查询生成器或我做错了什么?
PS.当然我知道我可以使用$user->name而不使用显示任何属性,pluck但我只是好奇为什么使用Eloquent它工作并使用查询生成器它只有当没有和两个first和pluck
我正在学习如何使用Laravel 5,我遇到了一个问题,我的控制器是在"app"文件夹的根目录而不是"controller"文件夹中创建的.我不知道为什么会这样,因为我已经重新安装并检查了10次.
我在Windows 8.1上的gitbash ..
所以我走了
john@John ~/desktop/code/my-first-app
$ php artisan make:controller PagesController
Run Code Online (Sandbox Code Playgroud)
然后我明白了
控制器创建成功
只有它app在Controllers文件夹的根目录中创建而且没有任何内容.我错过了什么?我也看到其他人在laracasts视频的评论中遇到同样的问题.
某些服务向我的站点发出 HTTP 请求并传递一些输入。这个输入的结构对我来说有点错误,所以我正在尝试修改它。
我制作了一个中间件并将这个中间件附加到我的路线上。句柄方法如下所示:
public function handle($request, Closure $next)
{
$input = $request->all();
// Input modification
$request->replace($input);
\Log::info($request->all()); // Shows modified request
return $next($request);
}
Run Code Online (Sandbox Code Playgroud)
但是在我的控制器中,我得到了旧的输入。另外我有点困惑,因为我也使用 FormRequest,而且我意识到这两个请求是不同的实体。那么如何修改中间件中的输入呢?
我收到以下错误:
FilesystemManager.php第179行中的FatalErrorException:未找到类'League\Flysystem\AwsS3v3\AwsS3Adapter'
码:
//Composer.json
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.1.*",
"laravel/socialite": "~2.0",
"guzzlehttp/guzzle": "~4.0",
"predis/predis": "^1.0",
"tymon/jwt-auth": "0.5.*",
"league/flysystem-aws-s3-v2": "^1.0"
},
"require-dev": {
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~4.0",
"phpspec/phpspec": "~2.1"
}
//config/filesystem.php
'default' => 's3',
'cloud' => 's3',
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
's3' => [
'driver' => 's3',
'key' => '***********',
'secret' => '**************************************',
'region' => '*****',
'bucket' => '************',
],
],
//FileController
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use …Run Code Online (Sandbox Code Playgroud) 我在Request类中有以下代码来检查用户是否有权执行更新.
HandlesAuthorization trait,默认情况下给出默认消息.有没有办法返回自定义消息?我看到在授权方法Request class可以return boolean只值.
class UpdateRoleRequest extends Request
{
private $UserPermissionsSession;
public function __construct(IRole $Role) {
$this->UserPermissionsSession = new UserPermissionsSession();
}
public function authorize() {
$UserID = \Auth::user()->UserID;
return $this->UserPermissionsSession->CheckPermissionExists($UserID);
}
}
Run Code Online (Sandbox Code Playgroud) laravel laravel-5 laravel-request laravel-authorization laravel-5.5
我很困惑,也许这是我看不到的简单事情.如果我想看看今天的日期是否过去,我应该能够做到这样的事情吗?
if( $league->date_start <= Carbon::now() ){
$join = false;
$message = 'Sorry, the league has already started';
}
Run Code Online (Sandbox Code Playgroud)
如果我把它的日期转出来
$league->date_start = 2017-07-31 00:00:00
Carbon::now() = 2017-11-01 16:29:27
Run Code Online (Sandbox Code Playgroud)
$league->date_start 是一个受保护的日期,所以它是一个碳实例
但这不起作用,如果我切换到$league->date_start >= Carbon::now()它工作,不会让我加入.我知道"联盟"的开始日期是过去所以不应该是$league->date_start <= Carbon::now()?????
我有这样的情况.我有一些第三方特征(我不想测试)我有我的特性使用这个特性,在某些情况下运行第三方特征方法(在下面的例子我总是运行它).
当我有这样的代码:
use Mockery;
use PHPUnit\Framework\TestCase;
class SampleTest extends TestCase
{
/** @test */
public function it_runs_parent_method_alternative()
{
$class = Mockery::mock(B::class)->makePartial();
$class->shouldReceive('fooX')->once();
$this->assertSame('bar', $class->foo());
}
protected function tearDown()
{
Mockery::close();
}
}
trait X {
function foo() {
$this->something->complex3rdpartyStuff();
}
}
trait Y2 {
function foo() {
$this->fooX();
return 'bar';
}
}
class B {
use Y2, X {
Y2::foo insteadof X;
X::foo as fooX;
}
}
Run Code Online (Sandbox Code Playgroud)
它会工作正常,但我不希望代码组织这样.在上面的类I代码中使用两个traits,但在代码中我想测试其实trait使用开头提到的其他特性.
但是当我有这样的代码时:
<?php
use Mockery;
use PHPUnit\Framework\TestCase;
class SampleTest extends TestCase
{
/** …Run Code Online (Sandbox Code Playgroud) laravel ×7
php ×5
laravel-5 ×4
laravel-5.1 ×2
amazon-s3 ×1
composer-php ×1
eloquent ×1
email ×1
git-bash ×1
laravel-4 ×1
laravel-5.5 ×1
makefile ×1
mockery ×1
namespaces ×1
networking ×1
oop ×1
php-carbon ×1
phpunit ×1
scope ×1
testing ×1
unit-testing ×1
validation ×1