我对Laravel和PHPUnit都很陌生,我在Ubuntu 12.04上使用Laravel 4.
当我phpunit从项目的主目录运行时,它运行Laravel附带的ExampleTest.php测试.我创建了自己的示例测试(与他们的示例完全相同,在同一目录中,只重命名文件和测试并执行不同的操作),并phpunit像以前一样再次运行; 但它仍然只运行ExampleTest.php - 而不是我创建的测试.但是,如果我跑phpunit path/to/myTest,它运行我的测试就好了.所以我觉得这是一个愚蠢的问题,但我怎么用一个命令运行所有测试(我认为phpunit应该这样做)?
谢谢您的帮助!
现在我正在尝试使用composer来安装我的php包但是我收到了这个错误消息:$ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev)
- Installing filp/whoops (1.0.7)
Downloading: 100%
[Symfony\Component\Process\Exception\RuntimeException]
The Process class relies on proc_open, which is not available on your PHP installation.
Run Code Online (Sandbox Code Playgroud)
编辑:
启用proc_open函数后,我收到此错误,并将我的php memory_limit设置为384M:
Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:990
Stack trace:
#0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///usr/loc...', 990, Array)
#1 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(990): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array)
#2 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(832): Symfony\Component\Console\Application->getSttyColumns()
#3 …Run Code Online (Sandbox Code Playgroud) 我在我Artisan::call()的一个路由中使用,并希望将命令输出保存到变量.
有没有办法捕获artisan命令生成的STDOUT和STDERR?
当我做php artisan migrate时,我收到此错误.我的迁移文件有什么问题吗?或者我的模型可能编码错误吗?但即使模型中存在问题,迁移也应该有效吗?
[Exception]
SQLSTATE[HY000]: General error: 1005 Can't create table 'festival_aid.#sql-
16643_2033' (errno: 150) (SQL: alter table `gigs` add constraint gigs_band_
id_foreign foreign key (`band_id`) references `bands` (`band_id`) on delete
cascade) (Bindings: array (
))
[PDOException]
SQLSTATE[HY000]: General error: 1005 Can't create table 'festival_aid.#sql-
16643_2033' (errno: 150)
Run Code Online (Sandbox Code Playgroud)
演出迁移
public function up()
{
Schema::create('gigs', function($table)
{
$table->increments('gig_id');
$table->dateTime('gig_startdate');
$table->integer('band_id')->unsigned();
$table->integer('stage_id')->unsigned();
$table->foreign('band_id')
->references('band_id')->on('bands')
->onDelete('cascade');
$table->foreign('stage_id')
->references('stage_id')->on('stages')
->onDelete('cascade');
});
public function down()
{
Schema::table('gigs', function($table)
{
Schema::drop('gigs');
$table->dropForeign('gigs_band_id_foreign');
$table->dropForeign('gigs_stage_id_foreign');
});
}
Run Code Online (Sandbox Code Playgroud)
乐队迁移 …
我确信必须有更快的方法来做到以下几点.我无法找到任何关于如何将laravel模态对象保存为新行而不覆盖现有项目的内容.从本质上讲,我现有的代码更简单:
$oldItem = Item::find(1);
$newItem = new Item;
$newItem->key = $oldItem ->key;
$newItem->name = $oldItem ->name;
$newItem->path = $oldItem ->path;
$newItem->save();
Run Code Online (Sandbox Code Playgroud)
相反,复制除行的id之外的所有内容:
$oldItem = Item::find(1);
$newItem = $oldItem;
unset($newItem->id);
$newItem->save();
Run Code Online (Sandbox Code Playgroud) 我正试图弄清楚如何使用Eloquent为列添加别名.
那么,换句话说,如何使用Eloquent执行以下mysql查询?
SELECT occupation AS test FROM users WHERE occupation = 'PIMP';
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在laravel中构建一个非常简单的CRUD,只是为了学习这个框架.它的工作原理就像一个魅力,但我无法使控制器的更新功能正常工作.
我的情况在这里:
1)我使用artisan命令构建资源控制器.
2)我使用刀片构建表单视图,然后使用以下代码打开表单:
<!-- Form -->
@if($mode=="edit")
{{ Form::model($task, array('route'=>array('task.update',$task->id),'files'=>true)) }}
@else
{{ Form::open(array('route'=>'task.store','files'=>true)) }}
@endif
Run Code Online (Sandbox Code Playgroud)
它工作得很好,每个领域都充满了正确的数据.表单动作的生成URL 是:
http://localhost/mysite/task/2
Run Code Online (Sandbox Code Playgroud)
问题是,当我提交此表单时,我收到此错误:
Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
Run Code Online (Sandbox Code Playgroud)
有人能理解为什么吗?我可以帮你提供更多信息吗?
我正在努力改变生成的时间戳列名称
php artisan migrate
Run Code Online (Sandbox Code Playgroud)
命令.
我已经做了以下更改.当我使用eloquent查询构建器时,它可以正确生成列名,但是当我使用上面的命令时,它仍然会生成"created_at","updated_at"和"deleted_at".谁能帮我吗?非常感谢.
/* vendor\framework\src\Illuminate\Database\Eloquent\Model.php */
/**
* The name of the "created at" column.
*
* @var string
*/
const CREATED_AT = 'datetime_created';
/**
* The name of the "updated at" column.
*
* @var string
*/
const UPDATED_AT = 'datetime_updated';
/**
* The name of the "deleted at" column.
*
* @var string
*/
const DELETED_AT = 'datetime_deleted';
Run Code Online (Sandbox Code Playgroud)
/* vendor\framework\src\Illuminate\Database\Schema\Blueprint.php */
/**
* Indicate that the timestamp columns should be dropped.
*
* @return void …Run Code Online (Sandbox Code Playgroud) 尽管我给了正确的权限,但Laravel4无法创建目录.发生了FileException错误,http: //s28.postimg.org/xkor8srxp/2014_01_03_2_53_18.png .我尝试了很多权限..
我甚至重新启动了Apache服务器.我一直在谷歌搜索24小时左右,仍然无法弄清楚..这里是路线和查看文件.
// routes.php
Route::post('handle-form', function()
{
$name = Input::file('book')->getClientOriginalName();
Input::file('book')->move('/storage/directory', $name);
return 'File was moved.';
});
// form2.blade.php
<form action="{{ url('handle-form') }}"
method="POST"
enctype="multipart/form-data">
<input type="file" name="book" />
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
目前我按照你的帮助对routes.php做了什么,
Route::post('handle-form', function()
{
$name = Input::file('book')->getClientOriginalName();
Input::file('book')->move(public_path().'/storage/directory', $name);
return 'File was moved.';
});
Run Code Online (Sandbox Code Playgroud)
我给的权限是sudo chmod -R 777存储
我来自Codeignitor背景.目前我正在Laravel建立一个CMS.
我想知道的是如何分离Laravel的后端和前端?
在Codeignitor中,我用来制作两个控制器Admin_Controller和Front_Controller.
Article extends Admin_Controller
Article extends Front_Controller
Run Code Online (Sandbox Code Playgroud)
并且文件结构看起来像这样
controller
--admin
---user
---blog
---news
--user
--blog
--news
Run Code Online (Sandbox Code Playgroud)
对于管理员控制器我使单独的文件夹和前端控制器保留在控制器文件夹的根目录中
我应该在Laravel中使用相同的逻辑还是有更好的方法来做到这一点?