2017-12-28 6 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'); 

및 프로젝트 이름을 보여주는 블레이드 파일 내가 내 블레이드 파일 10 charactors 보여줄 수있는 방법을 다음

<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> 

이다?

+0

이 문제를 해결하는 방법은 무엇입니까? – John

+0

여기에 도움이 필요합니다 ... – John

답변

0

이 작업을 수행 할 수 Project 모델에서 공용 함수를 만들 수 있습니다

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() }} 

최대 길이까지 그냥 매개 변수로 전달하십시오 :

{{ $proj->getShortName(20) }} 
관련 문제