2017-12-28 11 views
0

私のlaravelアプリケーションプロジェクト名は限られた文字で表示する必要があります。つまり、プロジェクト名に10文字以上の文字が含まれているとすると、10文字しか表示されません。Laravelでプロジェクト名を限定された文字で表示するには?

私のプロジェクト名はコントローラを作成

public function store(Request $request) 
    { 
     $this->validate($request, [ 
      'name'  => 'required|min:3', 
      'notes' => 'required|min:10', 
      'color' => 'required', 
      'group' => 'required', 
      'status' => 'required' 
     ]); 

     $project = new Project; 
     $project->project_name = $request->input('name'); 
     $project->project_status = $request->input('status'); 
     $project->group   = $request->input('group'); 
     $project->color   = $request->input('color'); 
     $project->project_notes = $request->input('notes'); 
     $project->user_id  = Auth::user()->id; 

     $duplicate = Project::where('project_name',$project->project_name)->first(); 
     if($duplicate) 
     { 
      return redirect()->route('projects.index')->with('warning','Title already exists'); 
     } 

     $project->save(); 
     return redirect()->route('projects.index')->with('info','Your Project has been created successfully'); 

で、ブレードのファイルを示すプロジェクト名は

<div class="row"> 
      @foreach ($projects as $proj) 
       <div class="col-md-3" style="border:3px solid {!!$proj->color!!};margin-left:5px;margin-bottom: 5px;"> 
       <h2><a href="/projects/{{ $proj->id }}">{!! $proj->project_name !!}</a></h2> 

その後、私は私のブレード・ファイルでのみ10キャラを表示することができる方法ですか?

+0

この問題を解決するための任意のアイデアですか? – John

+0

ここに何か助けが必要です... – John

答えて

0

これを行うには、Projectモデルでパブリック関数を作成することができます:あなたは別の制限を設定したい場合は

{{ $proj->getShortName() }} 

public function getShortName($maxLen = 10) 
{ 
    if ($this->project_name === null) { 
     return '-'; 
    } 
    if (strlen($this->project_name) <= $maxLen) { 
     return $this->project_name; 
    } 

    return substr($this->project_name, 0, $maxLen); 
} 

次に、あなたは、このように、ブレード・ファイルでそれを呼び出すことができます最大の長さにパラメータを渡すだけです:

{{ $proj->getShortName(20) }} 
関連する問題