shadow610

2703 经验值

我没有描述清楚吧,想把if的这个判断放在Presenters里,发现$errors这个变量不能放进去

比如:

namespace App\Presenters;

class UserPresenter
{
    /**
     * 性別欄位為M,就顯示Mr.,若性別欄位為F,就顯示Mrs.
     * @param string $gender
     * @param string $name
     * @return string
     */
    public function getFullName($gender, $name)
    {
        if ($gender == 'M')
            $fullName = 'Mr. ' . $name;
        else
            $fullName = 'Mrs. ' . $name;

        return $fullName;
    }
}

將原本在 blade 用 @if...@else...@endif 寫的邏輯,改寫在 presenter。

再比如

namespace App\Presenters;

use App\User;

class UserPresenter
{
    /**
     * 是否顯示email
     * @param User $user
     * @return string
     */
    public function showEmail(User $user)
    {
        if ($user->show_email == 'Y')
            return '<h2>' . $user->email . '</h2>';
        else
            return '';
    }
}

@if() 的 boolean 判斷,封裝在 presenter 內。

我的难点是$errors有时候有,有时候没有,不知道应该怎样改写,如果要依赖注入,该如何操作

如何将如下代码的判断放在Presenters里,$errors只有表单验证失败时才会有的变量,不知道应该如何改造

@if($errors->first('name'))
    {!! Form::text('name',null,['class'=>'input-text error','id'=>'name']) !!}
    <label id="name-error" class="error" for="name">  $errors->first('name')  </label>
@else
    {!! Form::text('name',null,['class'=>'input-text','id'=>'name']) !!}
@endif

参考链接:http://oomusou.io/laravel/laravel-presenter/index.html

你先说清楚你想要做什么。
如果你想要让a.com和b.com打开显示的是同样的内容,把这两个域名解析在同一个ip或者cname上,同时nginx的servername配置两个域名

没有遇到,一般是下载观看,还有就是最好使用chrome

不想使用完全的前后端分离开发,想整合使用,不知道该如何传递变量给vue使用

新建时候有vue文件,这个是怎么做的呢?现在装了插件,识别vue的文件,但新建那个是怎么做的?

最后做完后的代码,推荐用jsfiddle展示出来

定位到了namespace Illuminate\View;类名是view