Как посмотреть потоки отдела - PullRequest
0 голосов
/ 24 мая 2018

У меня есть отдел, в котором много потоков.Как я могу управлять всеми потоками из определенного отдела?

На данный момент у меня есть маршрут для отделов:

Route::resource('/manage/department', 'DepartmentController');

Контроллер индекса для отдела

public function index()
{
    $departments = Department::all();
    return view('admin.department.index', compact('departments'));
}

Индексный файл выглядит следующим образом:

@if($departments)
    <table class="table">
        <thead>
          <tr>
            <th>Dept Code</th>
            <th>Name</th>
          </tr>
        </thead>
        <tbody>
        @foreach($departments as $department)
          <tr>
            <td>{{ $department->dept_code }}</td>
            <td>{{ $department->name }}</td>
            <td><a class="btn-primary btn" href="#">Streams</a></td>
            <td><a class="btn btn-primary" href="{{route('department.edit', $department->id)}}">Edit</a></td>   
            <td>
                {!! Form::open(['method' => 'DELETE', 'action'=>['DepartmentController@destroy', $department->id]]) !!}

                    {!! Form::submit('Delete', ['class'=>'btn btn-danger']) !!}

                {!! Form::close() !!}
            </td>
          </tr>
        @endforeach
        </tbody>
    </table>
@endif

Теперь, когда я нажимаю кнопку «внизу» под потоками, я хочу иметь возможность просматривать все потоки этого конкретного отдела, а также добавлять новый поток..

Как мне этого добиться?

Каким будет мой новый маршрут, если мне нужно добавить новый, как мне это сделать в контроллере?

НадеюсьВы, кто-то, можете направить меня в этом.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Ответ на самом деле проще, чем я себе представлял.

Я добавил этот маршрут в свой индекс:

<td><a class="btn-primary btn" href="{{route('course.show', $department->id)}}">Courses</a></td>

Затем в методе show контроллера потоков я сделал это:

public function show($id)
{
    $department = Department::findOrFail($id);
    $courses = $department->courses;
    return view('admin.department.show', compact('courses'));
}

Не нужно добавлять дополнительные маршруты, потому что когда я создавал модель, она уже шла с ресурсами.

0 голосов
/ 24 мая 2018

Похоже, вы хотите управлять потоками, связанными с отделом, и, управляя, я думаю, вы имеете в виду операции CRUD, чистый способ сделать это - определить подресурс, связанный с менеджером отдела:

Маршруты

Route::group( [ 'prefix' => '/manage/department/{department_id}'], function ( Router $router ) {
    $router->resource( 'streams', 'StreamsController',['as'=>'department'] ); // here 'as' acts as a prefix for streams resource named routes
} );

Теперь в каждом методе (вы должны добавить его) в качестве обязательного параметра (вы должны добавить его) вы получили контроллер подресурса в качестве обязательного параметра, например:

StreamsController

public function index($department_id){
   // here you list the streams of a certain department smth like 
    $streams = Stream::where('department_id',$department_id)->get();
    return view('admin.stream.index', compact('streams'));
}

public function create($department_id){
  // here you add your create view
}

public function store(Request $request , $department_id){
  // your post request 
}

Наконец, в вашем индексном файле вы можете вызвать метод индекса следующим образом:
Index

<td><a class="btn-primary btn" href="{{route('department.streams.index',[$department->id])}}">Streams</a></td>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...