小编Lau*_*nce的帖子

将数据传递给Laravel 4中的闭包

我正在尝试使用Laravel 4中的Mail Class,而我无法将变量传递给$ m对象.

$ team对象包含我从数据库中获取的具有eloquent的数据.

Mail::send('emails.report', $data, function($m)
{
   $m->to($team->senior->email, $team->senior->first_name . ' '. $team->senior->last_name );
   $m->cc($team->junior->email, $team->junior->first_name . ' '. $team->junior->last_name );
   $m->subject('Monthly Report');
   $m->from('info@website.com', 'Sender');
});
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我得到一个错误,其中$ team对象不可用.我想它与范围有关.

有任何想法吗 ?

php laravel laravel-4

101
推荐指数
1
解决办法
3万
查看次数

架构构建器laravel迁移在两列上唯一

如何在两列上设置唯一约束?

class MyModel extends Migration {
  public function up()
  {
    Schema::create('storage_trackers', function(Blueprint $table) {
      $table->increments('id');
      $table->string('mytext');
      $table->unsignedInteger('user_id');
      $table->engine = 'InnoDB';
      $table->unique('mytext', 'user_id');
    });
  }
}

MyMode::create(array('mytext' => 'test', 'user_id' => 1);
// this fails??
MyMode::create(array('mytext' => 'test', 'user_id' => 2);
Run Code Online (Sandbox Code Playgroud)

database-schema laravel-4

97
推荐指数
3
解决办法
6万
查看次数

在Laravel迁移文件中填充数据库

我只是在学习Laravel,并且有一个工作的迁移文件来创建一个用户表.我试图填充用户记录作为迁移的一部分:

public function up()
{
    Schema::create('users', function($table){

        $table->increments('id');
        $table->string('email', 255);
        $table->string('password', 64);
        $table->boolean('verified');
        $table->string('token', 255);
        $table->timestamps();

        DB::table('users')->insert(
            array(
                'email' => 'name@domain.com',
                'verified' => true
            )
        );

    });
}
Run Code Online (Sandbox Code Playgroud)

但是我在运行时遇到以下错误php artisan migrate:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'vantage.users' doesn't exist
Run Code Online (Sandbox Code Playgroud)

这显然是因为Artisan还没有创建表,但所有文档似乎都说有一种方法可以使用Fluent Query来填充数据作为迁移的一部分.

谁知道怎么样?谢谢!

php migration mysql-error-1146 laravel

95
推荐指数
5
解决办法
8万
查看次数

如何安装Laravel的Artisan?

我想在Laravel中创建迁移,但根据教程,我需要Artisan CLI.该php命令工作正常,我在Windows上.我输入php artisan或者php artisan list我收到以下错误:

无法打开输入文件:artisan

我无法在文档和Google中找到任何指南.我该如何安装Artisan?

php laravel

78
推荐指数
3
解决办法
15万
查看次数

Laravel - 为所有路由使用(:任何?)通配符?

我在路由方面遇到了一些麻烦.

我正在使用CMS,我需要两条主要路线./admin/(:any).该admin控制器用于路由/adminview控制应该用于任何东西比其他/admin.从view控制器,那么我就要解析URL并显示正确的内容.

这就是我所拥有的:

Route::get(array('admin', 'admin/dashboard'), array('as' => 'admin', 'uses' =>'admin.dashboard@index'));
Route::any('(:any)', 'view@index');
Run Code Online (Sandbox Code Playgroud)

第一条路线有效,但第二条路线没有.我玩了一下它,似乎如果我使用(:any)没有问号,它只有在我放了一些东西后才有用/.如果我这样做把问号在那里,它不会在所有的工作.

我想要以下所有路由去查看@index:

/
/something
/something/something
/something/something/something
/something/something/something/something
...etc...
Run Code Online (Sandbox Code Playgroud)

这可能没有硬编码一堆(:any?)/(:any?)/(:any?)/(:any?)(我甚至不知道工作)?

最好的方法是什么?

php routing wildcard laravel laravel-3

51
推荐指数
7
解决办法
8万
查看次数

如何使用包含斜杠字符的参数定义Laravel路径

我想定义一个带有参数的路由,该参数将包含斜杠/字符,因此参数example.com/view/abc/02在哪里abc/02.

如何防止Laravel读取斜杠作为下一个路径参数的分隔符?因为我现在得到了404 not found error.

php laravel

45
推荐指数
4
解决办法
3万
查看次数

在Laravel 4中使用名称空间

我是Laravel的新手并且通常使用PHP命名空间.在我决定制作名为File的模型之前,我没有遇到任何问题.我如何正确地进行命名空间,以便我可以使用我的File模型类?

文件是app/controllers/FilesController.phpapp/models/File.php.我正在努力创造一个新FileFilesController.php.

php namespaces laravel laravel-4

44
推荐指数
2
解决办法
4万
查看次数

无法获得自动创建联接的说法

如果我的问题的答案显而易见,请提前道歉.在我发布这篇文章之前,我已经在研究这个主题时做了尽职调查.

我的大多数框架体验来自使用CodeIgniter,所以我从未有过使用ORM的实践经验.(CI确实有一些现成的ORM解决方案,但我从未使用它们.)

我想在Laravel的Eloquent ORM中使用内置的ORM功能,在运行查询时自动将锦标赛和国家/地区表连接在一起,并返回包含锦标赛数据及其相关国家/地区数据的数据集.

也就是说,我希望Eloquent自动识别外键关系,以便我可以运行查询(例如,Tournament :: with('Country') - > all())将返回整套锦标赛和国家/地区数据.

如果我以一种从未打算使用的方式使用Eloquent,请立即停止我!我的困惑可能更多的是我试图将一个难以维持的解决方案混合在一起而不是语法或编码错误.

查询我想在Eloquent中复制

SELECT * FROM tournaments LEFT JOIN countries ON tournaments.country_id = countries.id
Run Code Online (Sandbox Code Playgroud)

PHP中的预期结果

我希望收到一系列Tournament对象(在PHP中),其中单个Tournament对象如下所示:

  • tournaments.id
  • tournaments.year
  • tournaments.country_id
  • tournaments.created_at
  • tournaments.updated_at
  • countries.id
  • countries.code
  • countries.name
  • countries.url
  • countries.created_at
  • countries.updated_at

我做的失败的尝试失败了

我在虚拟控制器方法中运行了所有这些尝试,并将结果作为格式化字符串输出到分析器.

尝试失败#1:

虚拟控制器中的PHP代码:

$tournaments = Tournament::with('Country')->all();
Run Code Online (Sandbox Code Playgroud)

生成以下查询:

SELECT * FROM `tournaments`
Run Code Online (Sandbox Code Playgroud)

尝试#1返回:

包含Tournament对象的数组,仅包含锦标赛表中的列.

尝试失败#2

虚拟控制器中的PHP代码:

$tournaments = Tournament::with('Country')->first();
Run Code Online (Sandbox Code Playgroud)

生成以下错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'tournament_id' in 'where clause'

SQL: SELECT * FROM `countries` WHERE `tournament_id` IN (?)

Bindings: array ( …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-3

40
推荐指数
1
解决办法
6820
查看次数

更改Laravel的created_at和updated_at的名称

我可以映射Laravel的时间戳:

created_atpost_datepost_date_gmt

updated_atpost_modifiedpost_modified_gmt


我正在将Wordpress应用程序迁移到Laravel.

我正在使用Laravel访问Wordpress数据库的副本.数据库的实时版本仍在使用中,因此我不想更改架构.

该帖子表有post_date,post_date_gmt,post_modifiedpost_modified_gmt,但Laravel期待created_atupdated_at.

反正有没有改变Laravel寻找的列名?

我希望Laravel更新已经存在的所有列的时间戳.

php mysql laravel laravel-4

39
推荐指数
2
解决办法
3万
查看次数

Laravel,如何重定向为301和302

我在Laravel文档中找不到重定向为301/302的信息.

在我的routes.php文件中,我使用:

Route::get('foo', function(){ 
    return Redirect::to('/bar'); 
});
Run Code Online (Sandbox Code Playgroud)

这是默认的301或302吗?有没有办法手动设置它?知道为什么会从文档中省略这一点吗?

http-status-codes laravel laravel-4

37
推荐指数
5
解决办法
4万
查看次数