小编Phi*_*rks的帖子

Laravel 4 Eloquent ORM通过动态属性访问一对一关系

我试图在'Users'表和'User_profiles'表之间建立一个非常简单的关系模型.每个用户都有一个user_profile,所以它是一对一的简单.根据发现的文档@ http://four.laravel.com/docs/eloquent#one-to-one我已将以下功能添加到我的用户模型中:

public function user_profile()
{
    return $this->hasOne('User_profile');
}
Run Code Online (Sandbox Code Playgroud)

这是我的User_profile模型中定义的关系:

public function user()
{
    return $this->belongsTo('User');
}
Run Code Online (Sandbox Code Playgroud)

我试图从控制器访问像这样:

    // Get current user
    $user = User::find(Auth::user()->id);
    $profile = $user->user_profile;

    print_r($user);
    print_r($profile);

    echo "User's name is: " . $user->user_profile->first_name . ' ' . $user->user_profile->last_name;
Run Code Online (Sandbox Code Playgroud)

不幸的是,打印$ user打印出用户模型字段就好了,但没有显示任何关系的痕迹; $ profile是空的.'relations'数组也是空的,我猜应该填充它.

我正在尝试使用此处建议的"动态属性" http://four.laravel.com/docs/eloquent#dynamic-properties

否则如果我去:

echo "User's name is: " . $user->user_profile()->first()->first_name . ' ' . $user->user_profile()->first()->last_name;
Run Code Online (Sandbox Code Playgroud)

它有效......但我真的不喜欢这样做.

有什么建议?

laravel eloquent laravel-4

6
推荐指数
1
解决办法
3532
查看次数

无法在Laravel 4中设置cookie

我使用的是最新版本的Laravel 4,我无法设置cookie:

Route::get('cookietest', function()
{
    Cookie::forever('forever', 'Success');
    $forever = Cookie::get('forever');
    Cookie::make('temporary', 'Victory', 5);
    $temporary = Cookie::get('temporary');
    return View::make('cookietest', array('forever' => $forever, 'temporary' => $temporary, 'variableTest' => 'works'));
});
Run Code Online (Sandbox Code Playgroud)

查看脚本:

@extends('layouts.master')

@section('content')
    Forever cookie: {{ $forever }} <br />
    Temporary cookie: {{ $temporary }} <br />
    Variable test: {{ $variableTest }}
@stop
Run Code Online (Sandbox Code Playgroud)

产量:

Forever cookie: 
Temporary cookie: 
Variable test: works
Run Code Online (Sandbox Code Playgroud)

如果我刷新页面或在一个路径中创建cookie并尝试在另一个路径中访问它们并不重要.我可以确认没有使用上述操作设置cookie.cookies'laravel_payload'和'laravel_session'以及'remember_ [HASH]'确实存在,我可以使用setcookie使用常规PHP设置cookie.

在我能找到的任何地方都不会抛出或记录任何错误.我在本地运行Linux Mint,在我的服务器上运行Debian,都使用nginx,我在两个地方都有同样的问题.

cookies laravel laravel-4

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

Laravel在视图中显示错误

如果我的验证失败,我这样做:

return Redirect::back()->with('validation', $validation->errors->all());
Run Code Online (Sandbox Code Playgroud)

我也在使用:

$restful = true;
Run Code Online (Sandbox Code Playgroud)

所以当我在get_edit()- 我得到一个错误,在生成我的视图时没有$ validation变量,当进入时post_edit()- 它一切正常,因为它返回一个有错误的重定向...

这是我的看法:

<? foreach($validation as $e): ?>

<div><?= $e; ?></div>

<? endforeach; ?>
Run Code Online (Sandbox Code Playgroud)

undefined变量$ validation,现在我试着把它放在Router ::之前

Route::filter('before', function()
{
    View::share('validation', array());
});
Run Code Online (Sandbox Code Playgroud)

所以变量存在但是是空的,但是现在出现了一个新问题,每次在这个过滤器执行之后它会覆盖那些$validation生成我post_edit()的变量$errors,我在视图中看到过一个变量但是它一直是空的,我不知道如何使用它, 你能帮助我吗?

所以很快我的问题是:

public function get_edit($id)
{
   //generate my view with all nessesary data, but i can't generate here an error variable
   // or its better to put it in one place to globally share it in …
Run Code Online (Sandbox Code Playgroud)

php error-handling laravel laravel-4

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

接受Laravel 4路由中的编码URL

我正在开发一个Laravel 4 Beta 5的网站,我正在尝试将编码的URL传递给路由器.问题是,编码的URL中有百分比等,因此它被Laravel阻止.URL使用Javascript函数进行编码encodeURIComponent().

有没有办法覆盖Laravel所以我可以在我的路线中使用任何角色?

这是我目前的代码:

Route::get('add/{encoded_url}', function($encoded_url)
{
    return 'The URL is: '.rawurldecode($encoded_url);
});
Run Code Online (Sandbox Code Playgroud)

我试图通过追加来覆盖Laravel where('encoded_url', '*reg-ex*');,但它没有用(我对reg-ex,顺便说一下我不是很好).

routes laravel laravel-4

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

Bootbox.js在提交表单之前确认选择

您好我已经决定使用Bootbox.js作为一种简单的方法来合并一个bootstrap模式,这样我就可以让用户在发布表单并进行更改之前确认他们的选择.

我在我的默认布局文件中使用Laravel,jQuery,Bootstrap和Bootbox.js:

Layout.blade.php

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script>window.jQuery || document.write('<script src="js/vendor/jquery-1.9.1.min.js"></script>')</script>
    <script src="js/plugins.js"></script>
    <script src="js/main.js"></script>
    <script src="js/vendor/bootstrap.js"></script>
    <script src="js/vendor/modernizr-2.6.2.min.js"></script>
    <script src="js/vendor/bootbox.js"></script>
Run Code Online (Sandbox Code Playgroud)

用户页面:

{{Form::open('choice')}}

   @foreach($items as $item)
      <tr>  
        <td>{{ HTML::image($item->image, '', array('class' => 'img img-rounded', 'width' => '100px', 'height' => '100px')) }}</td> 
        <td>{{$item->name}}</td>  
        <td>{{ $item->desc }}</td>  
        <td>{{ Form::radio('item', $item->item_id)}}</tr>
    @endforeach   
    </tbody>  
  </table>

  {{ Form::submit('Confirm Choice', array('class' => 'btn btn-success btn-block')) }}

  <script>
  $(document).ready(function() {
    $(document).on("click", ".alert", function(e) {
        bootbox.confirm("Are you happy with the decision you have made?", "I have changed my mind", "I …
Run Code Online (Sandbox Code Playgroud)

php jquery laravel bootbox

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

使用Laravel 4和Eloquent查询相关模型

使用Laravel 4我有以下模型和关系:具有多个记录的事件,其中包含许多项目.我想做的是这样的事情

Item::where('events.event_type_id', 2)->paginate(50);
Run Code Online (Sandbox Code Playgroud)

这个原因不起作用,因为Eloquent在检索记录时不会将模型连接在一起.那么如何在不自己编写SQL的情况下解决这个问题(因为我想使用分页,我想避免使用它).

php sql laravel laravel-4

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

测试中的Artisan :: call()失败

我需要在运行测试之前清理数据库,否则我会收到有关重复信息的奇怪错误.

在我的PostTest.php文件中,我创建了一个设置方法

public function setUp()
{
    Artisan::call('migrate:refresh');
}
Run Code Online (Sandbox Code Playgroud)

然后phpunit测试说:

PHP Fatal error:  Class 'Artisan' not found in C:\wamp\www\squigglemd\app\tests\PostTest.php on line 11
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

\Artisan::call('migrate:refresh');
Run Code Online (Sandbox Code Playgroud)

我如何从测试中调用Artisan?

phpunit laravel laravel-4

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

执行迁移后的模型/ Eloquent错误

我已经完成了Laravel 4的全新安装,在完成数据库迁移后,我收到此错误:

\vendor\laravel\framework\src\Illuminate\Auth\EloquentUserProvider.php line 56 Error: Call to undefined method User::newQuery() in D:\xampp\htdocs\start\vendor\laravel\framework\src\Illuminate\Auth\EloquentUserProvider.php line 56

我的User模型没有修改(Laravel原创),我刚刚创建了一些迁移.

laravel laravel-4

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

将多个Laravel Eloquent模型作为JSON返回

我的"用户"模型与"图像"模型有很多关系.

只返回用户就像"return Response :: eloquent($ user);"一样简单.我想要返回一个{user:{id:...}的JSON数组,images:[{id:...},{id:...}]},或者更好,{id:...,images:[{ ID:...},{ID:...}]}

安排和运送这些模型的最佳方法是什么?我是不是该

laravel laravel-4

2
推荐指数
1
解决办法
4706
查看次数

Vagrant 1.1.5中的共享文件夹权限

现在尝试使用Laravel框架设置一个小的Vagrant开发环境,并且需要使我/ vagrant/storage/views文件夹可写,但无论如何我都无法获得文件夹的权限!

我已经做好了:

sudo chmod -R 777 /vagrant/storage/views
Run Code Online (Sandbox Code Playgroud)

...之后仍然保留对该文件夹的rwxr-xr-x权限.我可以更改文件的权限,但不能更改/ vagrant文​​件夹中的文件夹.

任何人对如何解决这个问题都有任何想法?谢谢.

permissions ubuntu vagrant laravel laravel-3

2
推荐指数
1
解决办法
2909
查看次数