2017-12-16 8 views
1

Laravel에서 Mikrotik PHP API를 사용하여 새 사용자를 추가하려고합니다. 나는 다른 사용자 용 정보 (예 : 사용자 정보보기)를 위해 API를 사용할 수 있지만 새 사용자를 만들려고 할 때 아무런 오류가 없으며 의도 한 페이지로 리디렉션됩니다.Laravel을 사용하여 Mikrotik에서 새 사용자를 만드는 방법은 무엇입니까?

내 경로입니다

Route::post('/isp/addUser', '[email protected]'); 

내 양식 요청

<form method="POST" action="{{ action('[email protected]') }}"> 
    {{ csrf_field() }} 
    @foreach ($networks as $network) 
     <input type="hidden" name="user_name" value="{{ $user->name }}"> 
     <input type="hidden" name="ip" value="{{ $network->ip }}"> 
     <input type="hidden" name="user" value="{{ $network->m_username }}"> 
     <input type="hidden" name="pass" value="{{ $network->m_password }}"> 
    @endforeach 
     <button type="submit" class="btn btn-primary btn-sm text-uppercase"> 
       <strong>add</strong> 
     </button> 
</form> 

내 컨트롤러 방법은

public function addUser(Request $request) { 
     $API = new routeros_api(); 
     $API->user_name = $request->user_name; 
     $API->ip = $request->ip; 
     $API->user = $request->user; 
     $API->pass = $request->pass; 

     if ($API->connect($request->ip, $request->user, $request->pass)){ 
      $API->comm("/ppp/secret/add/name={{ $API->user }}/password=123456/service=ppoe/profile=1-MBPS"); 
      $API->disconnect(); 
     } 

     return redirect('/isp'); 
    } 

이 심지어 어떤 오류를 포기하지 않을이다, 그래서 나는 어떤을 받고 있지 않다 실마리. 나는 요청을 제대로 보내지 않고 있다고 생각하지만, 어떻게해야하는지 전혀 모른다.

+0

확실하지 도움이되지만 Laravel의 템플릿 문자열은 컨트롤러 방법 내에서 작동합니까? $ API-> comm() 인수 –

+0

에서도 사용하고 있습니다. 확실하지 않습니다. 하지만 난 아무런 단서가 없어. ( – Ahsan

+0

좋은 질문 tho –

답변

0

해당 블레이드 템플릿 단축 코드 {{}}을 제거하십시오. 그것은 컨트롤러 또는 다른 PHP 클래스 내부가 아닌 블레이드 템플릿에서만 작동합니다.

위의 코드에서

$API->comm("/ppp/secret/add/name={{ $API->user }}/password=123456/service=ppoe/profile=1-MBPS");

{{ 중괄호 단지 문자열로 읽을 수 있습니다, 그래서 name 매개 변수는 그 이전과 $API->user 변수 후 일부 중괄호를해야합니다. 어떤 예를 $API->user = 'john'에 대해 다음 경로가

"/ppp/secret/add/name={{ john }}/password=..." 대신이 사용자를 만들기위한 name=john

+0

그래, 고마워. 내가 언급 한 것을 잊지 만, 그런 식으로 또한 노력했다. – Ahsan

0

대신 name={{ john }}로 읽기 때문에 그것은 또한 오류가 발생하지 않는 이유 "/ppp/secret/add/name=john/password=..."

될 것이다합니다 보내 주셔야합니다

$API->comm('/user/add',['name'=>$username,'password'=>$password,'group'=>'read']); 

자세한 내용은을 참조하십시오.

희망이이 도움이된다면